仅允许vb6中的字符串中的某些字符

时间:2011-12-12 14:19:50

标签: vb6 textbox restrict

我想只使用预定义的字符才能在vb6中的文本框中使用。 我怎么能做到这一点?

预定义字符将类似0-9A, C, M, E除了这些之外的所有其他字符都会将msgbox设为错误。它也可以是a,c,m,e我可以使用Ucase()来解决它。

3 个答案:

答案 0 :(得分:7)

你可以;

private Sub atextbox_KeyPress(keyascii As Integer)
   if InStr(1, "0123456789ACME", Chr$(keyascii)) = 0 Then keyascii  = 0 '//case sensitive
End Sub

if Chr$(keyascii) like "[0-9]" or Chr$(keyascii) like "[ACMEacme]"

或者格式化

select case true
    case chr$(keyascii) like "[0-9]"
    case chr$(keyascii) like "[ACMEacme]"
    case else
        keyascii = 0
end select

答案 1 :(得分:5)

您可以检测使用KeyPress事件输入的每个字符并检查ASCII值。如果将其设置为0,则将忽略印刷机。 请务必检查Change事件以抓住粘贴等。

此外,请勿使用消息框,因为这会使用户烦恼。

答案 2 :(得分:2)

使用KeyPress事件:

Private Sub txtBox_KeyPress(KeyAscii As Integer)
    Dim KeyChar As String
    If KeyAscii > 31 Then 'ignore low-ASCII characters like BACKSPACE
        KeyChar = Chr(KeyAscii)

        If Not IsAllowed(KeyChar) Then
          KeyAscii = 0
          MsgBox.Show("The allowed characters are ... ")
        End If
    End If
End Sub

IsAllowed函数将包含允许的密钥代码。