1

I figured out how too get only numbers in a text box with is code:

 Dim smessage As String = String.Empty

 If Not IsNumeric(Student_IDTextBox.Text) Then
      smessage += "The ID must be Numeric!" + Environment.NewLine
 End If

But I would like this textbox to have 2 letters and 3 numbers, do you know what the best way to programme this in vb?

4

3 回答 3

2

请尝试使用自定义蒙版蒙版文本框。设置掩码,如 LLL00。请参阅此链接 http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.mask.aspx

于 2013-10-08T08:24:46.680 回答
0

这当然不是最好的方法,但我不知道你是否会找到最好的方法,因为最好是主观的,而且通常取决于不止一种情况和意见。

假设一个带有名称txtinput和标签的文本框,您将在其中显示命名的结果lblMessage并假设您使用的是 ASCII 字符输入:

如果您有以下情况TextChangedtxtinput

'Check if the length is greater than five, if it is truncate it.
If txtinput.Text.Length > 5 Then
    txtinput.Text = Mid(txtinput.Text, 1, 5)
    txtinput.Select(txtinput.Text.Length, 0)
End If

'counters for letters and numbers
Dim letters As Integer = 0
Dim numbers As Integer = 0

'Parse and compare the input
For Each c As Char In txtinput.Text
    If Asc(c) >= 48 And Asc(c) <= 57 Then 'ASCII characters for 0-9
        numbers += 1
    ElseIf Asc(c) >= 65 And Asc(c) <= 90 Then 'ASCII characters for A-Z
        letters += 1
    ElseIf Asc(c) >= 97 And Asc(c) <= 122 Then 'ASCII characters for a-z
        letters += 1
    End If
Next

If letters = 2 And numbers = 3 Then
    lblMessage.Text = "Correct Format"
Else
    lblMessage.Text = "Incorrect Format"
End If

使用 Linq:

If txtinput.Text.Length > 5 Then
    txtinput.Text = Mid(txtinput.Text, 1, 5)
    txtinput.Select(txtinput.Text.Length, 0)
End If

If txtinput.Text.Count(Function(x As Char) Char.IsLetter(x)) = 3 And txtinput.Text.Count(Function(x As Char) Char.IsNumber(x)) = 2 Then
    lblMessage.Text = "Correct Format"
Else
    lblMessage.Text = "Incorrect Format"
End If
于 2013-10-08T15:01:32.263 回答
0

如果 ID 必须是 3 个数字和 2 个字符,那么它可能还有一个模式(就像许多车牌一样),并且比单纯的字符类型计数更重要。屏蔽文本框是一种方法,计算数字和计算字母是另一种方法。

如果存在 AAA-NN 或 AAAANN 等模式,您可以将 ID 拆分为 2 个输入,一个字母,一个数字。这通常使用(美国)社会安全号码 (NNN-NN-NNNN) 等模式的 ID 来完成。RegEx 也可能用于测试模式。

如果这是一个登录或其他数据库应用程序,而不是编写太多代码来简单地测试模式测试条目。您可以收集他们输入的任何内容并进行简单查询以查看 ID 是否存在,这毕竟比模式重要得多。

表单上的标签可以告诉他们使用###AA 或其他什么,但是当您可以简单地告诉他们何时无效时,测试模式并报告模式错误似乎很愚蠢。毕竟,即使它有正确的模式,它仍然可能是一个无效的 ID。

于 2013-10-08T11:35:00.323 回答