• ベストアンサー

テキストボックスで数値入力制限

数値しか入力できないようにしているテキストボックスがあります。が、どこを見てもそんな処理は入ってないように見えるんです。 マスクではなくテキストボックスでです。 キープレスでもゴットフォーカスにもそんなロジックはありませんでした。 プロパティには存在しないと思っています。 ソースがあるのにどこに書いてるかわからないというバカぶりですが、どなたかアドバイスお願いします。

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

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.3

Win32APIのSetWindowLong(GetWindowLongも併用)でウィンドウスタイルを変更することで、数字入力専用のテキストボックスに変更できるそうです。 GetWindowLongで得たウィンドウスタイルにES_NUMBER(&H2000)を付加して、SetWindowLongを利用してウィンドウスタイルを変更する方法です。 このコードがどこかで使用されていませんか?

その他の回答 (3)

回答No.4

プロパティで設定できると思うのですが。。。 プロパティの、『IME-MODE』の部分が、2か3になっていませんか? ちなみに、  2:IMEモードオフ(最初だけ、入力不可)  3:IMEモードオフ固定(入力不可) だったと思います

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.2

クラス化しているとかじゃない?

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

こんにちは、じゃんぬねっと です。 VB.NET で、カスタムコントロールであればありえる話ですね。

関連するQ&A

  • 数値型のテキストボックスを文字型に変えたい

    環境:XP&ACCESS2003 数値型のコントロールソースを持つテキストボックスがあります。このテキストボックスに、例えば「8+7」と入力するために、文字型に変換したいのですが。 *このコントロールソースの更新後処理に Me!テキスト0 = Eval(テキスト0) と記述しています。 数値型なので、「数値型の為入力できません」旨のエラーが出てしまいます。

  • テキストボックスの数値入力制限

    テキストボックスによる数値入力の制限で困っています。 LEDの点灯とモーターの動作のチェックプログラムを作り 完成したのですが、いろいろとネットで調べ 下記のプログラムでテキストボックスの数値入力を作成したのですが、 作成プログラム Dim bKeyNum As Boolean = Char.IsDigit(e.KeyChar) If bKeyNum <> True Then e.Handled = True End If この方法ではBack Spaceキーが効かないため上司から使いづらいので キーが効くようにしてほしいと要望があり、 もう一度探しましたが、どれも記述どおりにやっても うまく動きません。 何か私に分かりやすく説明をしてくれて簡単に数値入力と Back Spaceキーが使えるプログラムを教えてください。 よろしくお願いします。

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

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

  • テキストボックスについて

    1. テキストボックスの MultiLine プロパティを False に設定すると,そのプログラムの実行中に,テキストボックス内でリターンキーが押されると,エラー音が発生します。これを抑止したいのですが,どうすればよいのでしょうか? なお,MultiLine プロパティを True にするとエラー音は発生しなくなりますが,そのかわりに改行が行われてしまいます。MultiLine プロパティを True にして改行を抑止する方法でも構いません。どうか教えていただきたく存じます。 2. テキストボックス入力中にタブキーが押されたことを認識させたいのですが,KeyDown で認識させようとしてもうまくいきません。単にフォーカスが動いてしまうだけになってしまいます。フォーカスを移動させずに,タブキーが押されたことを認識させる方法を教えてください。 以上2点,どうかよろしくお願いいたします。

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

     VB6の画面入力でテキストボックスにフォーカスが移った際、半角カナや全角漢字、半角アルファベット大文字と云ったキーボードからの入力を制御したい(OSはWinXp/FEPはIME2002を使用)のですが、良い方法が有れば教えてください。

  • テキストボックスで再入力不可機能

    テキストボックスやコンボボックス、オプションボタンなど選択した後、次のフォーカスへ移動した時に再入力できないようにするのはどう処理をすればよいでしょうか?

  • テキストボックス入力後、警告メッセージを表示し、フォーカスを移動させない方法について

    テキストボックスの入力チェックを行うために下記のようなソースを記述しました。 下記を実行するとテキストボックスにどんな文字を入力してもメッセージボックスを表示し、 フォーカスが移動しない形となっております (厳密にはボタンにフォーカスが移動した後、テキストボックスにフォーカスを移動しています)。 これは Me.テキストボックス.SetFocus のみを記述した所、次の場所にフォーカスが移動してしまい、 下記のように書くとフォーカスが移動していないように見えるため、このようにしました。 ただこの記述はいささか強引な感じなので、これを改良したいと思っております。 2回フォーカスを移動させるのではなく、フォーカス移動を抑止する方法がベストと思いますが、 方法が分からなかったので、何かしらアドバイスをいただけれる方がいらっしゃいましたらよろしくお願いします。 【ソース】 Private Sub テキストボックス_AfterUpdate() MsgBox "エラー" Me.ボタン.SetFocus Me.テキストボックス.SetFocus End Sub 以上、よろしくお願いします。

  • Accessテキストボックスの未入力チェック

    いつも参考にさせて頂いております。 Accessテキストボックスの未入力チェックで上手くいかず悩んでいます。過去の情報等調べましたが、わかりませんでした。 どなたか宜しくお願い致します。 フォーム1にテキストボックス1、ボタン1があります。 テキストボックスを何も入力せず、Enter等で移動する時にチェックをかけたいです。 もし、テキストボックスに何も入力がなかったら、メッセージを出し、フォーカスをテキストボックスに戻す。 何か入力があれば、ボタンにフォーカスが移動する。 If IsNull(Me.テキストボックス1) = "" Then msgbox "未入力です。" Me.テキストボックス1.SetFocus End If 宜しくお願い致します。

  • アクセスのフォーム上のテキストボックスについて

    アクセスのフォーム上のテキストボックスについて フォーム上のテキストボックスに直接数字を入力しようとしています。ただ、このテキストボックスのコントロールソースはフォームのレコードソースと違うものです。 この状況でテキストボックスに数値を直接入力しようとすると、『コントロールソースに連結しているので、編集できません。』と表示され、入力出来ません。 どうすれば、解決できるのかご存知の方、教えて下さい。宜しくお願いします。

  • テキストボックスの入力検出について

    テキストボックスの入力検出について質問です。 変更があるとプロパティシートの適用ボタンを有効になるようにしているのですが、 テキストボックスをクリックすると、 「WM_COMMAND」になっていて、PropSheet_Changed()関数を 処理してしまうのですが、 テキストボックスで入力された時だけ PropSheet_Changed()関数を処理したいのですが、 どうすればいいのでしょうか? 参考にしたサイト http://wisdom.sakura.ne.jp/system/winapi/common/common12.html 開発環境 XP Visual Studio 2005 C、C++でWindowsAPIを使用

専門家に質問してみよう