テキストボックスの入力を制限するには?

解決


サイ  2004-11-25 00:00:28  No: 117767

テキストボックスに16進数以外を入力出来ないようにしたいのですが、
何か良い方法がありましたら教えてください。
宜しくお願いします。


特攻隊長まるるう  2004-11-25 00:25:53  No: 117768

16進数 → [0〜9] か [A〜F]
くらいの判断でいいなら、数値のみの入力制限を行う
ソースを改造して A〜F も受け付けるようにするだけ
で実現できると思いますが?。

数値のみの入力制限を行うプログラムは参考書などにも
載ってますし、過去ログ検索でも引っ掛かります。
いくつか手法はあるでしょうが…まぁ、テキストの 
Change イベントあたりでチェックするのが普通でしょう。


サイ  2004-11-27 01:28:03  No: 117769

数値のみ入力させるというこれ↓

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

を改造してやってみようと思ったのですが、上手くいきませんでした。
過去ログも一通り見たのですが・・・
勉強不足ですみません。


つーもす  2004-11-27 02:10:14  No: 117770

これだとバックスペースとかも受け付けません。

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


nanashi  2004-11-27 02:11:14  No: 117771

どのように改造して、どう上手くいかなかったのでしょうか?

それとKeyPressイベントだと入力自体は制限できてもコピペは出来ますよ。


マグ  2004-11-27 02:12:53  No: 117772

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文の使い方です。


いな  2004-11-27 02:46:14  No: 117773

>それとKeyPressイベントだと入力自体は制限できてもコピペは出来ますよ。

自分の場合、Changeイベントに記述かなぁ〜


サイ  2004-11-28 08:25:02  No: 117774

マグさんに教えて頂いた方法で出来ました!
有難うございます!!
また、答えて下さった特攻隊長まるるうさん、つーもすさん、nanashiさん、いなさん、
どうも有難うございました!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加