Winformテキストボックスに数字のみを入力できるようにする方法

WinFormのテキストボックスに数値のみを入力させるには、次のいずれかの方法を使用できます。

  1. KeyPressイベントを使用する:

テキストボックスのKeyPressイベントにおいて、押されたキーが数値キーまたは許可されたキー以外の場合は、そのキー入力をキャンセルする。

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
  1. TextChangedイベントと正規表現を使用する:

テキストボックスのTextChangedイベントで正規表現を用いて、テキストボックス内の内容が数値かどうかをチェックし、数値でない場合は数値以外の文字をクリアします。

private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox1.Text = Regex.Replace(textBox1.Text, "[^0-9]", "");
}
  1. マスク入力を使用

通常のTextBoxコントロールの代わりにMaskedTextBoxコントロールを使用し、マスクを数字の形式(例:0-9)に設定します。

maskedTextBox1.Mask = "0-9999";

いずれの方法でも、テキストボックスに入力できるのは数字だけになります。

bannerAds