-1

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

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
4

3 回答 3

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() 将字符串转换为数字。

于 2013-09-21T17:26:21.823 回答
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
于 2013-09-22T03:16:17.947 回答
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

结束类

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

于 2014-08-13T02:54:08.497 回答