• ベストアンサー

C#でTextBoxに数値のみ入力可能とする方法

C#の超初心者です。C#.NETでWindows環境下でプログラム開発を行っています。TextBoxで数値のみ入力可能にする方法を教えてください。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if(!('0' <= e.KeyChar && e.KeyChar <= '9')) e.Handled=true; } keyPressイベントで Handled に true を設定すれば、キャンセルできます。 小数点のチェックを入れる場合は、チェックをもう少し考えないといけません

teramakashi
質問者

お礼

ありがとうございました。小数点とエンターキーの判定も追加できました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • hpp
  • ベストアンサー率64% (22/34)
回答No.4

すみません。ボケてましたね。 textBox1.Text.Replace(e.KeyChar,'') 空のリテラルでコンパイルさえ通らないですね。それにKeyPressイベントの段階ではまだtextBox1.Textの内容は古いままで書き換わってませんね。 普段私は正規表現とデータベース更新時にまとめて入力項目をチェックしますので、思い込みでKeyPressイベントについて考察してしまいました。 以後、動作確認、もしくは動作確認できなければそれを明記するように気をつけたいと思います。お恥ずかしい限りです。

teramakashi
質問者

お礼

ご意見、参考にさせていただきました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • hpp
  • ベストアンサー率64% (22/34)
回答No.2

keypressイベントでチェックし、入力された1文字を消すということは可能です。e.KeyCharをチェックし、違反していれば、 textBox1.Text.Replace(e.KeyChar,'') みたいな感じで良いでしょう。しかし、貼り付けされることもあります。 なので、Leaveイベントでチェックするか、データ更新など何らかアクションを起こしたときに、errorProviderを使ってまとめてチェックした方が堅いと思います。もっとも両イベントでチェックしても良いとは思います。

全文を見る
すると、全ての回答が全文表示されます。
  • hpp
  • ベストアンサー率64% (22/34)
回答No.1

特にプロパティには用意されていないようなので、 using System.Text.RegularExpressions; Regex regex09 = new Regex("^[0-9]+$"); if (regex09.IsMatch(texBox1.Text) { } といった具合に正規表現で判断すれば良いでしょう。

teramakashi
質問者

補足

ありがとうございます。正規表現に違反している場合はキー入力をキャンセルしたいのですが、どうしたらよろしいのでしょうか?KeyPressイベントは使えますか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • textboxの数値入力について

    VB.net2003を買って1週間、以前にはVBの経験がない本当に初心者です。 textboxで数値を入力させて ボタンをクリックしたのちに その数値を読み込んで四則演算等に使いたいのですが、どうすればよいのでしょうか?

  • TextBoxに入力された文字列のソート

    TextBoxに入力された文字列のソート TextBoxに入力された文字列のソート 開発環境:Visual Web Developer 2008 express 言語:Visual Basic TextBoxを縦5行横3列に並べた表形式の入力フォームがあり、1列目のTextBox(番号…1,4、7、10、13)に入力された文字列(数値)を基準に、昇順にソートし、行ごと入れ替えるプログラムを作りたいのですが、TextBoxを利用したソートの参考になるものが見つからず息詰まっています。どなたかサンプルや参考になるサイトがあれば、教えてください。 ###入力フォーム### 1  あああ あああ 3  ううう ううう 2  いいい いいい 5  おおお おおお 4  えええ えええ ###実際に出したい結果### 1  あああ あああ 2  いいい いいい 3  ううう ううう 4  えええ えええ 5  おおお おおお

  • 【C#】textboxに入力されたキーワードを使った処理

    【C#】textboxに入力されたキーワードを使った処理 C#初心者です。 以下の二つを知りたいので、分かる方いらっしゃいましたらサンプルソースなどで教えていただけると幸いです。 (1)textboxに文字が入力されているか、されていないかを判断する処理。 (2)もし入力されていたら、その文字を文字列KEYWORDに代入する処理。 宜しくお願いいたします。

  • C#のtextBoxについて

    C#のtextBoxについて お世話になります。 C#初心者です。 textBox上で、ダブルクリックをしたら、 ○ の記号を表示させたいのですが、 記述方法が分かりません。 どなたかご親切な方、ご教授頂きたく 宜しくお願い申し上げます。

  • TextBox1とTextBox2の数値の大小の比較について

    1)ユーザーフォーム上のTextBox1に入力された数値とTextBox2に入力された数値の大小の比較を下記のような感じで行ってみたところ、40>300や50>100という感じの結果になってしまいます(ゼロを無視してる?)プロパティは.Valueと.Textの両方を試してみたのですが、同じような結果だったと思います。正しい結果を出すにはどうすればよいのでしょうか。 If UserForm1.TextBox1.Value>UserForm1.TextBox2.Value then~ 2)変数を宣言して、その変数にTextBox1の内容(数値)を代入する場合、Integer型等とTextBox型のどちらとして宣言するのが正しいのでしょうか。 以上二点、よろしくお願いします。(Excel2000使用)

  • VB5でTextBoxを入力不可能にする方法は?

    VisualBasic5で開発を行っているのですが、TextBoxの入力を不可能にする(入力カーソルもそこに移動できない)必要が出てきました。 もちろんEnabledプロパティをFalseにする方法があるのですが、この場合文字の色がグレーに変わってしまいます。 また、Labelを使用するパターンも「入力出来たり、入力不可にする」という取り決めがあるので、使えません。 TextBox内の文字色(BackColorも)をそのままにして、入力を拒絶する方法があれば、どなたか教えてください。 もちろんAPIを使用する方法でもかまいませんので…

  • TextBoxの表示、非表示

    TextBoxの表示、非表示 開発環境:Visual Web Developer 2008 express 言語:Visual Basic 上記開発環境を使いWebアプリケーション開発中です。 現在、入力フォームを作成中ですが、CheckBoxにチェックがあったらTextBoxを表示するようなことをしたいのですが、ASP.NETの記述がわかりません。 VBAでは If CheckBox1.Value = True Then TextBox1.Visible = False のようにかけばできたのですが。。。 初心者なもので単純な質問で申し訳ありませんが、どなたかご教授願います。

  • VB Textboxの数字を判別する方法

    VisualVasic初心者です。下記のコードについて教えてください。 Textboxに数字を入力し、その数値によりラベルに表示される文字が変わるというプログラムを作りたいのですが、コードがわかりません。 Textboxに1と入力し、ボタンを押すとラベル1に「りんご」と表示される。 TextBoxに2と入力し、ボタンを押すとラベル2に「みかん」と表示される。 VB2005を使用しています。

  • C#のTextboxについて

    string a; a="Textbox1" double b =double.Parse(a)-10.0 上記のようにプログラムを書きました。 bという変数に(Textbox1に記載してある数値-10)を代入したいのですがエラーが出てしまいました。 間違いがわかりません。 わかるかたがいましたら、教えていただけないでしょうか? よろしくお願いいたします。

  • TextBoxに"333"と入力されても"000333"として扱いたい

    VB.NETです。 フォーム上のTextBox(MaxLength=6)に、"333"と入力されても"000333"として、"4444"と入力されても"004444"として、TextBox内に表示させ、それを変数に渡したいのですが、良いフォーマット手法があれば、ご教授下さいませ。

このQ&Aのポイント
  • Windows 10 Proを使用しているHP Zbookで、ELECOM_DUAL_series_Mouse_Driverを起動してもマウスのDPIやプロファイル設定が機能しない問題が発生しています。
  • マウス速度を変更しても変わらず、Windowsのマウスカーソル加速を無効にする設定も反映されません。
  • さらに、マウスを接続するたびにWindowsのマウス設定が初期化され、毎回再設定しなければならない状況です。
回答を見る