【C#】テキストボックスのKeyPressイベントで数字のみ判定

テキストボックス(TextBox)コントロールで、数字のみしか入力して欲しくない場合。

これもよく使うのでメモ。

テキストボックスのKeyPressイベント

以下は、KeyPressイベントで判定する場合のソースコード。

private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
  if ((e.KeyChar < '0' || '9' < e.KeyChar) && e.KeyChar != '\b')
  {
    // 数字とバックスペース以外は処理しない
    e.Handled = true;
  }
}

解説

e.Handled = trueで、イベント処理を強制的に完了(省略)させることができるので、0~9、バックスペース(Backspace)以外の入力をキャンセルするようにしている。

参考サイト

クリップボードからの貼り付けを含む、各種入力に対応した数値入力用テキストボックスを用意したい場合、以下のサイトに記載されている派生クラスを作成する。

TextBoxに数字しか入力できないようにする - .NET Tips
https://dobon.net/vb/dotnet/control/numerictextbox.html

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のSEを経て、独立。 ここ数年はWEB以外の仕事をしていたため、割と本気で勉強中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です