テキストボックス(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