从Isnumeric()VB.NET获取错误

时间:2013-09-21 17:06:04

标签: vb.net isnumeric

我在输入框中输入字母表时出现运行时错误

Dim amount As String
        amount = InputBox("Enter the amount of people you want to participtate", "System Message")
        If amount < 0 Or Not (IsNumeric(amount)) Then
            MsgBox("Please enter positive number of people", vbExclamation, "System Message")
        End If

3 个答案:

答案 0 :(得分:2)

将字符串与数字进行比较是相当危险的,并且在你的脸上爆炸。您可以使其工作,但您必须仔细编写代码,确保您永远不会尝试比较无法转换为数字的字符串。这需要使用另一个运营商:

    If Not IsNumeric(amount) OrElse amount < 0 Then
        MsgBox("Please enter positive number of people", vbExclamation, "System Message")
    End If

注意更改的顺序和OrElse的使用,Or的短路版本。如果左侧已经为True,它将不会评估右侧表达式。

更多以.NET为中心的方法是使用Integer.TryParse()将字符串转换为数字。

答案 1 :(得分:1)

为了避免错误,你可以这样做..

If IsNumeric(amount) Then
  If value(amount) > 0 Then
    'codes here
  Else      
     MsgBox("Please enter positive number of people", vbExclamation, "System Message")
  End If
Else
  MsgBox("Please enter a number of people", vbExclamation, "System Message")
End If

答案 2 :(得分:0)

所以我正在考虑验证一个文本框,首先我想确保它不是空的,并确保它是一个数字。我绝不是专家,但我会把我写的代码用来验证用户输入。我把它放在一个函数中,因为我有很多用户必须输入的文本字段。

Class MainWindow 
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
    tb2.Text = tbCheck(tb1)
End Sub

Private Function tbCheck(ByRef tb As TextBox) As Boolean
    tbCheck = tb.Text.Length > 0
    Try
        tbCheck = (tb.Text / 1) > 0
    Catch ex As Exception
        tbCheck = False
    End Try
    Return tbCheck
End Function

结束班

这只是我编写的简单程序,用于检查代码是否按照我的希望工作。 希望这可以帮助某人或者至少告诉我是否有我遗失的东西。