vb6 のテキスト ボックスで使用できる定義済みの文字のみを作成したいです。どうすればそれを達成できますか?
事前定義された文字は同様0-9
でありA, C, M, E
、これら以外のすべての文字は msgbox にエラーを与えます。それを解決するためにa,c,m,e
使用することもできます。Ucase()
あなたはできる;
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
イベントを使用して入力された各文字を検出しKeyPress
、ASCII 値を確認できます。0 に設定すると、プレスは無視されます。Change
貼り付けなどをキャッチするイベントもぜひチェックしてみてください。
また、メッセージボックスを使用しないでください。これはユーザーを悩ませます。
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 関数には、許可されたキー コードが含まれます。