- ベストアンサー
キー入力制限について
OS:windows2000pro VB:VB6.0sp5 テキストボックス(オブジェクト名:text1)に下記文字以外は 入力不可にする方法(プログラム)を教えてください 初歩的なご質問かと存じますがよろしくお願いいたします 英字:A~Z(大文字) 英字:a~z(小文字) 数字:0,1,2,3,4,5,6,7,8,9 記号:-(ハイフン),_(アンダーバー)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
テキストボックスのイベントで以下の2つがあります。 1.KeyPressイベント そのイベントに「KeyAscii As Integer」 という引数があるので、それを使用して 以下の文字以外入力できないようできます。 2.KeyDownイベント そのイベントに「KeyCode As Integer」 という引数があるので、それを使用して 以下の文字以外入力できないようできます。 プログラムは、MSDN ライブラリ(ヘルプ)を見てください。 自分で調べるのも必要ですよ。
その他の回答 (4)
- JeanneNet
- ベストアンサー率48% (100/208)
[↓] すんません、VB.NET と勘違いしてました。 無視してください。
- JeanneNet
- ベストアンサー率48% (100/208)
こんにちは、じゃんぬねっと です。 キーからの入力はキーイベントで防ぐとして、 コンテキスト メニュー、または [Ctrl] + [C] での貼り付けは、 WndProc をオーバーライドして WM_PASTE を拾うようにしましょう。 この時、クリップボードから貼られる予定の文字列を取得して、許可しない文字列だけ排除してから、 手動で貼り付けるコードを書くのが素直な方法だと思います。
- SSBBGLUV
- ベストアンサー率47% (11/23)
キーからの直接入力だけ防げればいいのであれば話は簡単なのですが、キー入力を伴わない入力(右クリックでのペーストなど)まで保護しようとすると、結構根が深い問題です。 ちょっと見栄えは悪くなりますがTextChangeイベントで指定文字以外を削るか、もしくはデータが確定するタイミング(例えば保存ボタンが押された場合など)で入力文字種をチェックするのが簡単だと思います。
- ctrlzr
- ベストアンサー率29% (18/62)
ちょっと補足です。 入力できないようにするには、 1.KeyPressイベント KeyAscii =0 2.KeyDownイベント KeyCode = 0 です。 キーを0にすることにより、キー入力がなかったことにできます。