我希望文本框的组合是110,101,100,001,010,000.如果有人输入140,就会出现错误.我该怎么写才能继续


    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")

这些是我的错误检查代码,用来通知那些输入了字符串或数字而不是整数的人。在公元前。文本,我只想要3个长度0和1的组合比如100,101,110等等。如果有人输入150,我希望消息框说"请插入适当的数字到B.C框"。我该怎么做呢?感谢您的宝贵时间!

您可以使用正则表达式,如下所示:

Imports System.Text.RegularExpressions
...
Dim rg As Regex = New Regex("^[01]{3}$")
Dim test As String = "111"
Dim b as Boolean = rg.IsMatch(test)

b只有在匹配3 1/0

的任意组合时才为真

欢呼

你可以过滤掉你的按键在文本框的KeyDown事件使用SuppressKeyPress来保持错误的值显示在文本框

这是一个概念的快速测试:

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

一种更原始但可能性能较差的方法是首先检查长度,然后使用字符串替换命令从字符串中删除所有"1"one_answers"0"字符,如果结果剥离的字符串不为空,则引发消息框。

最新更新