C#のTextBoxに数字しか入力できる方法は何ですか?

C#で数字のみを入力できる方法は以下のようなものがあります。

  1. KeyPressイベントの使用:数字のみを許可するためにKeyPressイベントを使用することができます。KeyPressイベントでは、入力された文字が数字かどうかを判断して入力を受け入れるかどうかを決定できます。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
    {
        e.Handled = true;
    }
}
  1. TextChanged イベントを使用すると、テキストボックスの内容が変更されるたびに、入力が数字かどうかをチェックし、必要に応じて処理を行うことができます。
private void textBox1_TextChanged(object sender, EventArgs e)
{
    if (!int.TryParse(textBox1.Text, out int result))
    {
        textBox1.Text = "";
    }
}
  1. 正規表現を使用すれば、入力が数字であるかどうかを検証し、必要な場合に処理することができます。
private void textBox1_TextChanged(object sender, EventArgs e)
{
    if (!Regex.IsMatch(textBox1.Text, @"^\d+$"))
    {
        textBox1.Text = "";
    }
}

具体のニーズに応じて、数字の入力のみを許可する機能を実現するために、上記の方法を1つまたは複数選択することができます。

bannerAds