テキストボックスに16進数以外を入力出来ないようにしたいのですが、
何か良い方法がありましたら教えてください。
宜しくお願いします。
16進数 → [0〜9] か [A〜F]
くらいの判断でいいなら、数値のみの入力制限を行う
ソースを改造して A〜F も受け付けるようにするだけ
で実現できると思いますが?。
数値のみの入力制限を行うプログラムは参考書などにも
載ってますし、過去ログ検索でも引っ掛かります。
いくつか手法はあるでしょうが…まぁ、テキストの
Change イベントあたりでチェックするのが普通でしょう。
数値のみ入力させるというこれ↓
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim str As String
str = Chr(KeyAscii)
If str >= "0" And str <= "9" Then
ElseIf str = Chr(8) Then
Else
KeyAscii = 0
End If
End Sub
を改造してやってみようと思ったのですが、上手くいきませんでした。
過去ログも一通り見たのですが・・・
勉強不足ですみません。
これだとバックスペースとかも受け付けません。
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim Temp As String
On Error GoTo Test
Temp = Hex("&H" & Chr(KeyAscii))
Exit Sub
Test:
KeyAscii = 0
End Sub
どのように改造して、どう上手くいかなかったのでしょうか?
それとKeyPressイベントだと入力自体は制限できてもコピペは出来ますよ。
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim str As String
str = Chr(KeyAscii)
If (str >= "0" And str <= "9") Or (str >= "a" And str <= "f") Or (str >= "A" And str <= "F") Then
ElseIf str = Chr(8) Then
Else
KeyAscii = 0
End If
End Sub
これで出来なかったら、すみません。
VB.NETで確認しましましたけど・・・・・
方法はIF文の使い方です。
>それとKeyPressイベントだと入力自体は制限できてもコピペは出来ますよ。
自分の場合、Changeイベントに記述かなぁ〜
マグさんに教えて頂いた方法で出来ました!
有難うございます!!
また、答えて下さった特攻隊長まるるうさん、つーもすさん、nanashiさん、いなさん、
どうも有難うございました!
ツイート | ![]() |