您好我正在尝试创建一个窗口表单,让用户在文本框中输入一个6位数的销售订单。然后,点击“开始”按钮并检查以确保用户实际输入了6个整数。谢谢!
Public Class Form1
Private Sub startButton_Click(sender As Object, e As EventArgs) Handles startButton.Click
Dim salesOrder As integer
salesOrder = txtboxSalesOrder.Text
If salesOrder 'Is a 6-digit integer
Then
'.....Do Something
Private Sub txtboxSalesOrder_TextChanged(sender As Object, e As EventArgs) Handles txtboxSalesOrder.TextChanged
End Sub
End Class
答案 0 :(得分:0)
您只需要将文本框中的输入转换为整数并检查获得的值
Dim salesOrder As integer
If Int32.TryParse(txtboxSalesOrder.Text, salesOrder) Then
If salesOrder >= 100000 andalso salesOrder <= 999999 Then
' valid number
else
MessageBox.Show("Not a 6 digits number")
End if
Else
MessageBox.Show("Please type a number between 100000 and 999999")
End If
请注意,您的代码会尝试自动将文本框中键入的内容转换为整数。这当然是导致错误的途径。您不应该这样做,并且您应该将项目的Option Strict设置为On以在编写此类潜在错误代码时获得早期错误。
相反,Int32.TryParse检查您是否有有效数字,否则返回false,或者使用转换结果设置您的变量。
答案 1 :(得分:0)
史蒂夫的解决方案可以正常工作,显然你已经对它进行了测试,但我会考虑在你离开文本框检查价值时挂钩验证或验证事件。
另请考虑使用errorprovider而不是消息框。
Private Sub txtboxSalesOrder_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtboxSalesOrder.Validating
If IsNumeric(sender.Text) Then
If <> sender.text.ToString.Length = 6 Then
MessageBox.Show("Please type a number between 100000 and 999999")
End If
End If
End Sub
在点击“开始”按钮之前,这将验证您是否有正确的数据。