MENU

C# TextBox.Numeric プロパティ

C#でWindowsフォームアプリケーションを開発する際、数値のみを入力させたいケースがよくあります。多くの開発者が「TextBox.Numeric」プロパティを探すかもしれませんが、実はC#の標準TextBoxコントロールにはそのようなプロパティは存在しません。しかし、心配する必要はありません。この記事では、TextBoxで数値入力を制限する方法と、数値入力に特化したNumericUpDownコントロールの使用方法を解説します。

目次

TextBoxで数値入力を制限する方法

標準のTextBoxコントロールには「Numeric」プロパティはありませんが、KeyPressイベントを使用して数値のみの入力を制限することができます。以下に、その実装方法を示します。

using System;
using System.Windows.Forms;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        textBox1.KeyPress += TextBox1_KeyPress;
    }

    private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        // 数字とバックスペース以外の入力を無効化
        if (!char.IsDigit(e.KeyChar) && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
}

このコードでは、以下のポイントに注目してください:

  1. TextBoxのKeyPressイベントにイベントハンドラを追加します。
  2. char.IsDigit()メソッドを使用して、入力が数字かどうかをチェックします。
  3. バックスペースキー(ASCIIコード8)も許可して、ユーザーが入力を修正できるようにします。
  4. 数字とバックスペース以外の入力は、e.Handled = true;でキャンセルします。

NumericUpDownコントロールの使用

数値入力に特化したコントロールが必要な場合、NumericUpDownコントロールを使用するのが最適です。このコントロールは、数値のみの入力を許可し、上下矢印ボタンで値を増減させることができます。

using System;
using System.Windows.Forms;

public partial class Form1 : Form
{
    private NumericUpDown numericUpDown1;

    public Form1()
    {
        InitializeComponent();

        numericUpDown1 = new NumericUpDown();
        numericUpDown1.Location = new System.Drawing.Point(10, 10);
        numericUpDown1.Size = new System.Drawing.Size(120, 20);
        numericUpDown1.Minimum = 0;
        numericUpDown1.Maximum = 100;
        numericUpDown1.DecimalPlaces = 2;  // 小数点以下2桁まで許可
        numericUpDown1.Increment = 0.1m;   // 増減値を0.1に設定

        this.Controls.Add(numericUpDown1);
    }
}

NumericUpDownコントロールの主な特徴は以下の通りです:

  1. MinimumMaximumプロパティで入力可能な値の範囲を設定できます。
  2. DecimalPlacesプロパティで小数点以下の桁数を指定できます。
  3. Incrementプロパティで上下矢印ボタンでの増減量を設定できます。

まとめ

C#の標準TextBoxには「Numeric」プロパティはありませんが、KeyPressイベントを使用することで数値入力を制限できます。より高度な数値入力機能が必要な場合は、NumericUpDownコントロールが最適な選択肢となります。

これらの方法を使用することで、ユーザーからの数値入力を効果的に制御し、入力エラーを防ぐことができます。数値を扱うアプリケーション、例えば計算機能やデータ入力フォームなどで、これらの技術を活用することで、より使いやすく信頼性の高いアプリケーションを開発することができるでしょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次