C# の TextBox のみの数値

Muhammad Maisam Abbas 2023年10月12日
  1. C# で NumberUpDown ビューを使用した数値のみのテキストボックス
  2. C# で TextBox ビューを使用した数値のみの TextBox
C# の TextBox のみの数値

このチュートリアルでは、C# の数値のみを受け入れるテキストボックスを作成する方法を紹介します。

C# で NumberUpDown ビューを使用した数値のみのテキストボックス

NumberUpDown ビューは、C# でユーザーから数値入力を取得するために使用されます。Windows フォームアプリケーションに NumberUpDown ビューを追加するには、ツールボックスから NumberUpDown を選択し、フォームにドラッグします。NumberUpDown ビューは、ユーザーから数値以外の値を取得しません。また、カーソルキーを使用して 1つの値を上下に移動することもできます。次のコード例は、C# の NumberUpDown ビューでユーザーからの数値のみを受け入れるテキストボックスを作成する方法を示しています。

using System;
using System.Windows.Forms;

namespace textbox_numbers_only {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }

    private void numericUpDown1_KeyPress(object senderObject, KeyPressEventArgs KeyPressEvent) {
      if (!char.IsControl(KeyPressEvent.KeyChar) && !char.IsDigit(KeyPressEvent.KeyChar) &&
          (KeyPressEvent.KeyChar != '.')) {
        KeyPressEvent.Handled = true;
      }
      if ((KeyPressEvent.KeyChar == '.') && ((senderObject as TextBox).Text.IndexOf('.') > -1)) {
        KeyPressEvent.Handled = true;
      }
    }

    private void numericUpDown1_ValueChanged(object sender, EventArgs e) {}
  }
}

出力:

C# テキストボックス番号のみ 1

上記のコードでは、C# の NumberUpDown ビューでユーザーからの数値のみを受け入れるテキストボックスを作成します。numericUpDown1_KeyPress() 関数に、. のチェックを追加しました。ユーザーが小数点値を入力できるようにする値。このテキストボックスは、2 桁の数値のみを受け取ります。

C# で TextBox ビューを使用した数値のみの TextBox

独自のビューを使用したくない場合は、元の TextBox ビューを変更して数値のみを受け入れるようにすることもできます。TextBox_KeyPress() 関数内の KeyPressEventArgs.Handled プロパティを使用して、テキストボックスで処理するキーの押下を指定できます。次のコード例は、C# の TextBox ビューで数値のみを受け入れるテキストボックスを作成する方法を示しています。

using System;
using System.Windows.Forms;

namespace textbox_numbers_only {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e) {}
    private void textBox1_KeyPress(object sender, KeyPressEventArgs KeyPressEvent) {
      KeyPressEvent.Handled = !char.IsDigit(KeyPressEvent.KeyChar);
    }
  }
}

出力:

C# テキストボックス番号のみ 2

上記のコードでは、textBox1_KeyPress() 関数の KeyPressEvent.Handled プロパティを使用して、テキストボックスが数値以外の値を処理しないように指定しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp GUI