• ベストアンサー

キー入力制限について

OS:windows2000pro VB:VB6.0sp5 テキストボックス(オブジェクト名:text1)に下記文字以外は 入力不可にする方法(プログラム)を教えてください 初歩的なご質問かと存じますがよろしくお願いいたします 英字:A~Z(大文字) 英字:a~z(小文字) 数字:0,1,2,3,4,5,6,7,8,9 記号:-(ハイフン),_(アンダーバー)

質問者が選んだベストアンサー

  • ベストアンサー
  • to_suzu
  • ベストアンサー率40% (2/5)
回答No.1

テキストボックスのイベントで以下の2つがあります。 1.KeyPressイベント   そのイベントに「KeyAscii As Integer」   という引数があるので、それを使用して   以下の文字以外入力できないようできます。 2.KeyDownイベント   そのイベントに「KeyCode As Integer」   という引数があるので、それを使用して   以下の文字以外入力できないようできます。 プログラムは、MSDN ライブラリ(ヘルプ)を見てください。 自分で調べるのも必要ですよ。

その他の回答 (4)

  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.5

[↓] すんません、VB.NET と勘違いしてました。    無視してください。

  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.4

こんにちは、じゃんぬねっと です。 キーからの入力はキーイベントで防ぐとして、 コンテキスト メニュー、または [Ctrl] + [C] での貼り付けは、 WndProc をオーバーライドして WM_PASTE を拾うようにしましょう。 この時、クリップボードから貼られる予定の文字列を取得して、許可しない文字列だけ排除してから、 手動で貼り付けるコードを書くのが素直な方法だと思います。

  • SSBBGLUV
  • ベストアンサー率47% (11/23)
回答No.3

キーからの直接入力だけ防げればいいのであれば話は簡単なのですが、キー入力を伴わない入力(右クリックでのペーストなど)まで保護しようとすると、結構根が深い問題です。 ちょっと見栄えは悪くなりますがTextChangeイベントで指定文字以外を削るか、もしくはデータが確定するタイミング(例えば保存ボタンが押された場合など)で入力文字種をチェックするのが簡単だと思います。

  • ctrlzr
  • ベストアンサー率29% (18/62)
回答No.2

ちょっと補足です。 入力できないようにするには、 1.KeyPressイベント KeyAscii =0 2.KeyDownイベント KeyCode = 0 です。 キーを0にすることにより、キー入力がなかったことにできます。