Vb.net中的InputBox数字验证

时间:2014-01-17 07:16:02

标签: vb.net validation

我在我的vb.net2008应用程序中使用了inputbox来接受特定产品的数量,我想为这个输入框提供数字验证。字符(a-z)必须无法在此输入框中输入,这与我们在textbox_keypress事件中执行的操作相同。请帮忙

4 个答案:

答案 0 :(得分:0)

输入文本时,默认的InputBox不提供此验证功能。您必须自己创建一个窗口(输入框)并添加所需的验证

最好的选择是创建一个新的表单,并对其进行所有验证 您想要的文本框,并将.ShowDialog()显示为模态,如InputBox

答案 1 :(得分:0)

检查出来......

http://www.functionx.com/vb/functions/inputbox.htm

正是我的想法。它表示输入框没有您可以订阅的过滤事件。所以我的建议是,你有2个选项......要么创建你自己的输入框并订阅文本框按键事件来过滤数据,要么让用户首先在输入框中输入数据并在输入数据后验证数据,如果你坚持使用输入框。这些是您唯一的选择。

答案 2 :(得分:0)

我意识到这已经得到了解答但是在例子中没有给出太多的答案。我最近遇到了类似的问题,试图仅为数字输入验证InputBox。

关于降雨统计收集申请,这就是我提出的。

循环是收集每个月的降雨量。 我首先将用户输入传递给字符串,然后使用IsNumeric验证字符串,然后转换为double并将其分配给数组中的当前索引。

如果输入为数字,则递增循环计数器以继续下个月。

如果不是数字,则显示错误并再次循环以询问同月输入。

Private Sub ...

    Dim intMaxIndex As Integer = 11
    Dim strMonths() As String = {"January", "February", "March", "April", "May", "June",
                                 "July", "August", "September", "October", "November", "December"}

    ' declare local array and counter
    Dim dblRainfallPerMonth(intMaxIndex) As Double
    Dim i As Integer = 0

    ' loop through the months
    Do Until i = intMaxIndex
        Dim strRainfall As String = ""
        ' get user input from InputBox and assign to a string
        strRainfall = InputBox("Enter the rainfall for " & strMonths(i))
        ' check if the user input is a number
        If IsNumeric(strRainfall) Then
            ' validation passed, convert user input and assign to current index in the array
            dblRainfallPerMonth(i) = CDbl(strRainfall)
            ' increment the counter
            i += 1
        Else
            ' validation failed, display error and do not increment the counter
            MessageBox.Show("Please enter a number")
        End If
      Loop

End Sub

答案 3 :(得分:-2)

Dim str As String = InputBox(你的消息)

如果 IsNumeric(str) 那么

'numeric = true

其他

'输入错误信息

如果结束