2

vb6 のテキスト ボックスで使用できる定義済みの文字のみを作成したいです。どうすればそれを達成できますか?

事前定義された文字は同様0-9でありA, C, M, E、これら以外のすべての文字は msgbox にエラーを与えます。それを解決するためにa,c,m,e使用することもできます。Ucase()

4

3 に答える 3

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
于 2011-12-12T14:29:18.940 に答える
5

イベントを使用して入力された各文字を検出しKeyPress、ASCII 値を確認できます。0 に設定すると、プレスは無視されます。Change貼り付けなどをキャッチするイベントもぜひチェックしてみてください。

また、メッセージボックスを使用しないでください。これはユーザーを悩ませます。

于 2011-12-12T14:23:32.813 に答える
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 関数には、許可されたキー コードが含まれます。

于 2011-12-12T14:22:18.803 に答える