在 Visual Basic 中限制文本框的输入

Restricting input to a textbox in Visual Basic

我需要限制用户在文本框中输入特定数据。我的要求是: 1. 第一个字符必须是小写的b或h。 2. 只接受之后的字母。


我有代码只接受基于 ascii 等价物的字母,但不知道如何只限制第一个字母。


如果我可以限制用户编辑该值,我也会接受根据单选按钮的选择输入该字母。

我相信这些也可以使用正则表达式来完成,但没有太多经验。

Private Sub txtSysName_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtSysName.KeyPress
    If Asc(e.KeyChar) < 65 Or Asc(e.KeyChar) > 90 And Asc(e.KeyChar) < 97 Or Asc(e.KeyChar) > 122 Then
        e.Handled = True
    End If
End Sub

你可以做一个检查,如果第一个字母不是 b 或 h,它会自动更改。像这样:

If Not Left(TextBox.Text, 1) = "b" Or Not Left(TextBox.Text, 1) = "h" Then
    TextBox.Text = Replace(Left(TextBox.Text, 1), "b")
End If

如果第一个字母不是 b 或 h,它会将第一个字母替换为 'b',但如果您愿意,也可以轻松地显示错误消息。

根据 Chris 的建议,我使用了这个,因为从 vba 2010 年起,left 和 replace 函数不能再像他的回答中那样使用了。

 If Not acro.Substring(1) = "u" Or Not acro.Substring(1) = "c" Then
        txtAcro.Text = acro.Replace(acro.Substring(1), "u")
    End If