プロが教える店舗&オフィスのセキュリティ対策術

OS:windows2000pro
VB:VB6.0sp5

テキストボックス(オブジェクト名:text1)に下記文字以外は
入力不可にする方法(プログラム)を教えてください
初歩的なご質問かと存じますがよろしくお願いいたします

英字:A~Z(大文字)
英字:a~z(小文字)
数字:0,1,2,3,4,5,6,7,8,9
記号:-(ハイフン),_(アンダーバー)

A 回答 (5件)

テキストボックスのイベントで以下の2つがあります。



1.KeyPressイベント
  そのイベントに「KeyAscii As Integer」
  という引数があるので、それを使用して
  以下の文字以外入力できないようできます。

2.KeyDownイベント
  そのイベントに「KeyCode As Integer」
  という引数があるので、それを使用して
  以下の文字以外入力できないようできます。

プログラムは、MSDN ライブラリ(ヘルプ)を見てください。
自分で調べるのも必要ですよ。
    • good
    • 0

[↓] すんません、VB.NET と勘違いしてました。


   無視してください。
    • good
    • 0

こんにちは、じゃんぬねっと です。



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

キーからの直接入力だけ防げればいいのであれば話は簡単なのですが、キー入力を伴わない入力(右クリックでのペーストなど)まで保護しようとすると、結構根が深い問題です。


ちょっと見栄えは悪くなりますがTextChangeイベントで指定文字以外を削るか、もしくはデータが確定するタイミング(例えば保存ボタンが押された場合など)で入力文字種をチェックするのが簡単だと思います。
    • good
    • 0

ちょっと補足です。



入力できないようにするには、
1.KeyPressイベント
KeyAscii =0

2.KeyDownイベント
KeyCode = 0

です。
キーを0にすることにより、キー入力がなかったことにできます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!