Vb.net 我希望在我的文本框上有一个1,0的组合,比如11010110000101000。如果有人键入140,则会出现错误。我怎样才能写信继续这项工作?
这些是我的错误检查代码,用于通知键入字符串或数字而不是整数的人。在bc.Text中,我只需要3个长度的0和1的组合,如100101110等。如果有人键入150,我希望消息框显示“请在B.C框中插入适当的数字”。我该怎么做?谢谢你抽出时间 您可以使用一个,如下所示:Vb.net 我希望在我的文本框上有一个1,0的组合,比如11010110000101000。如果有人键入140,则会出现错误。我怎样才能写信继续这项工作?,vb.net,error-handling,Vb.net,Error Handling,这些是我的错误检查代码,用于通知键入字符串或数字而不是整数的人。在bc.Text中,我只需要3个长度的0和1的组合,如100101110等。如果有人键入150,我希望消息框显示“请在B.C框中插入适当的数字”。我该怎么做?谢谢你抽出时间 您可以使用一个,如下所示: If (String.IsNullOrEmpty(bc.Text)) Then MsgBox("Please Insert something into the text box.") ElseIf N
If (String.IsNullOrEmpty(bc.Text)) Then
MsgBox("Please Insert something into the text box.")
ElseIf Not Integer.TryParse(bc.Text, value) Then
MsgBox("Please Insert number into the B.C text box")
b
仅当它匹配3 1/0的任何组合时才为真
Cheers一种更原始、性能可能较差的方法是,首先检查长度,然后使用字符串替换命令从字符串中删除所有“1”和“0”字符,如果生成的剥离字符串不是空的,则引发消息框。您可以使用
SuppressKeyPress
过滤文本框的KeyDown
事件中的按键,以防止文本框中显示错误值
这是对概念的快速测试:
Imports System.Text.RegularExpressions
...
Dim rg As Regex = New Regex("^[01]{3}$")
Dim test As String = "111"
Dim b as Boolean = rg.IsMatch(test)
你的代码非常合理。Idk为什么我尝试使用if代码将每个值与0,1进行比较。因为用户不能键入其他数字,所以这要容易得多。我还有一个问题。长度控制如何?使用文本框的
MaxLength
属性
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
If Not (e.KeyData = Keys.D1 Or e.KeyData = Keys.NumPad1 _
Or e.KeyData = Keys.NumPad0 Or e.KeyData = Keys.D0 _
Or e.KeyData = Keys.Back Or e.KeyData = Keys.Enter _
Or e.KeyData = Keys.Delete) Then
Beep()
e.SuppressKeyPress = True
End If
End Sub