以下のコードは、TextBoxに対して数字のみを入力可能とするコードです。
数字以外を入力した場合は無視されます。
private void textBox1_KeyPress( object sender, KeyPressEventArgs e ) { // 制御文字は入力可 if ( char.IsControl(e.KeyChar) ) { e.Handled = false; return; } // 数字(0-9)は入力可 if ( char.IsDigit(e.KeyChar) ) { e.Handled = false; return; } // 小数点は1つだけ入力可 if ( e.KeyChar == '.') { TextBox target = sender as TextBox; if ( target.Text.IndexOf('.') < 0 ) { // 複数のピリオド入力はNG e.Handled = false; return; } } // 上記以外は入力不可 e.Handled = true; } |
3つめのifで、小数点の入力を許容しています。
もし、小数をNGとみなしたい場合は、3つめのif文自体を削除すればよいです。
また、数字(digit)ではなく数値(number)の入力を行わせたい場合は、NumericUpDownコントロールが便利です。こちらは、上記のような入力制限に加えて、上限値・下限値を指定する事も可能です。

また、本題からは少し外れますが、数字(digit)と数値(number)の違いについて説明します。
数字というのは、数を表す文字で、例えば社員番号、会員No、伝票番号なども数字に含まれます。
これに対して数値は、金額や数量などの、数学的な意味での”数”を意味します。
関連記事
コメントを残す