Windowsフォームのテキストボックスで数字のみを入力する方法


  1. 数字以外の入力を無効化する方法: テキストボックスの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)
{
    string input = textBox1.Text;
    string pattern = "[^0-9]";
    string replacement = "";
    Regex rgx = new Regex(pattern);
    string result = rgx.Replace(input, replacement);

    if (result != input)
    {
        textBox1.Text = result;
        textBox1.Select(result.Length, 0);
    }
}
  1. NumericUpDownコントロールを使用する方法: NumericUpDownコントロールは、ユーザーが数字のみを入力できるようにするための専用のコントロールです。テキストボックスと組み合わせて使用します。

これらの方法を使用することで、Windowsフォームのテキストボックスで数字のみを入力する制限を実装できます。お好みや要件に応じて、適切な方法を選択してください。