• ベストアンサー

キー入力制限について

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

  • nao0
  • お礼率10% (50/483)

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

  • ベストアンサー
  • 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にすることにより、キー入力がなかったことにできます。

関連するQ&A

  • VBでの入力値制限について

    はじめまして。 VBのテキストボックスに値を入力していき、ある桁数になるとメッセージを表示する仕組みを作りたいと考えています。 例えばVBで用意したテキストボックスにキーボードで123と入力しキーボードの4を押した直後に「桁数は3桁までです。」というメッセージを表示したいのですがいい方法を教えていただけないでしょうか? 自分で以下のように作ってみたのですがこれだとキーボードで123と入力し次に4を入力した時にテキストボックスに4が表示されてからエラーが出ます。そうではなく4をテキストボックスに表示させずに4をおしたら以下のメッセージが出るようにしたいのです。 よろしくお願い致します。 Private Sub text1_Change() If Len(text1.Text) > 3 Then MsgBox "桁数は3桁までです。", vbOKOnly + vbInformation, "情報" End If End Sub

  • TETXの入力制限について色々と…

    <input type=text~~~~~~>で作ったテキストに160byte(全角80文字)までしか入力できない制限をつけたい。 <input type=text~~~~~~>で作ったテキストに半角数字(又は英数)しか入れられないようにするタグとかないでしょうかね?? こっちは半角電話番号を入力してもらいたいのです。 どなたかご存知の方おりましたからお願いします。

    • ベストアンサー
    • HTML
  • テキストボックスの入力制限

    VB2005環境です。 ・全角文字のみ入力を受け付けるテキストボックス ・半角文字のみ入力を受け付けるテキストボックス 以上のような入力制限を持つコントロールを用意したいと思っています。 MaskedTextBoxを用いればできるかと思いましたが、それらしき プロパティが見当たりませんでした。 やはりキーイベントを取得して…ということになるのでしょうか?

  • 数字とプラス以外の入力をチェックしたい

    テキストボックスに、数字かプラス記号(+)以外のものがあるか チェックしたいと思っています。 ○ 1+1 × 1+1=2 Keypresで弾くことも考えましたが、ペーストへの対応が難しいので、 テキストボックスのValidatedで、入力文字に数字かプラス記号以外の 文字が入っていたら、そこでメッセージを出して警告するような作りに したいのですが、数字だけしかダメ!というのは比較的簡単そうでしたが、 それにプラスを加えて判定する方法がわかりません。 ご教授いただけないでしょうか。

  • テキストボックスの入力抑制

    使用言語はVB.NETです。 フォームAのテキストボックスAに文字を入力し確定すると、 フォームBが起動、フォームBのテキストボックスには、 テキストボックスAで入力した内容が表示されており、それを 変更することはできない。 ただし、テキストボックスAに何も入力せずに起動した場合、 テキストボックスBの内容は書き換え可能、というようなものを 作りたいと思っています。 また、テキストボックスBを入力不可にするには、Enabled=False 以外の方法で行いたいのです。 例えば、テキストボックスAで1と入れた場合、テキストボックスBの 初期表示1をBSで消しても、違う値をいれても、常に1に表示が戻される、 というようなものにしたいのですが…。 上記のようなものを作るには、どのように処理を作っていけば 良いのでしょうか? サンプル的なコードを教えていただけるとありがたいです。 よろしくお願いします。

  • 入力文字の制限について

    入力文字の制限について質問があります。 あるTextボックスに入力した文字列のうち、JISX0208の第一水準、及び第二水準に該当しない文字がある場合、エラーメッセージを表示させるプログラムを作成したいのですが、どのようにすれば良いか頭を悩ませています。 1バイト目、2バイト目の範囲を調べて判断しようかと思いましたが、  Textボックス ・・・ S-JIS(仕様)  VB内部    ・・・ Unicode(仕様) となっており、Unicodeの並び順はJISとは全く異なる為、行き詰まっています。 良いアイデアがありましたら、ご教授願います。

  • キータッチ2000を受けたことがある方、教えてください

    キータッチ2000というテストを受けようと思っていて、 サンプルプログラムCDを公式ホームページで購入しました。 そしてサンプルプログラムをやってみました。すると ネットの評判では数字、a~z、A~Zのランダム、ローマ字、英語、特殊文字がランダムで出題されると書いてあったのですが、 英単語・ローマ字・アルファベットa~Zのランダムが9割以上を占めていて、残りが数字・特殊記号という構成でした。 実際のテストでも数字・特殊記号の出題は少ないのでしょうか? a~Zまでの入力なら得意なので、サンプルプログラムでは6分ほどで2000打に到達したのですが、特殊記号の入力は物凄く苦手なので不安です。

  • EXCEL セルの文字列の文字種の判別

    エクセルでセルの文字列が下記のいずれかを判断するにはどうすればよいでしょうか? セルの文字列は英字数字記号が前提で、漢字かな等は入っていません。 ・数字のみ ・英字のみ ・記号のみ ・英字と数字 ・英字と記号 ・数字と記号 ・英字と数字と記号

  • 正規表現 英数字を1つ以上含む文字列

    ASP.NET(VB)での入力チェックのために、 半角英数字「0~9」「a~z」「A~Z」と、ハイフン「-」からなる文字列 (ただし、半角英数字「0~9」「a~z」「A~Z」はそれぞれ少なくとも1個ずつ含む) の正規表現での表し方が知りたいです。  How To: ASP.NET への入力を制約するために正規表現を使用する方法  http://www.microsoft.com/japan/msdn/enterprise/pag/securityguidance/paght000001.aspx  (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$  8から10文字で、最低1文字の数字と1文字の英字を使用し、特殊文字を使用してはいけません。 上記を参考に、 (?!^[0-9]*$)(?!^[a-z]*$)(?!^[A-Z]*$)^([a-zA-Z0-9])$ こんな感じかなぁと試してみたのですが、ダメでした。 そもそも「!」の意味が分かりません。否定でしょうか??

  • アドレスに入れる絵文字(記号?)のようなもの 教えて下さい

    携帯のアドレスを変えようと思っています。ハイフンやアンダーバーなど記号をつかった絵文字のようなものを入れたいのですが、なにか面白いやつがあったら教えて下さい

専門家に質問してみよう