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

时间:2015-03-18 14:38:34

标签: vba visual-studio-2012 textbox conditional-formatting

我需要限制用户在文本框中输入特定数据。我的要求是: 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

2 个答案:

答案 0 :(得分:0)

如果不是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

这将用&#39; b&#39;替换第一个字母。如果它不是b或h,但如果您愿意,可以轻松地显示错误消息。

答案 1 :(得分:0)

Per Chris&#39;建议,我用过这个,因为左边和替换功能不再像他们在vba 2010中的答案那样使用了。

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