C# Erstellen Sie ein Textfeld, das nur Zahlen akzeptiert

Minahil Noor 16 Februar 2024
  1. Erstellen Sie eine Textbox, die nur Nummern akzeptiert, indem Sie die Klasse KeyPressEventArgs in C# verwenden
  2. Erstellen Sie eine Textbox, die nur Nummern akzeptiert, mit der Methode Regex.IsMatch() in C#
  3. Erstellen Sie eine Textbox, die nur Nummern akzeptiert, mit der Methode NumericUpDown
C# Erstellen Sie ein Textfeld, das nur Zahlen akzeptiert

Beim Erstellen von Windows Forms benötigen einige Textfelder nur einen numerischen Wert. Wenn wir z. B. die Telefonnummern von Benutzern erhalten wollen, müssen wir unser Textfeld auf numerische Werte beschränken.

In diesem Artikel werden wir uns auf die Methoden konzentrieren, die ein Textfeld bilden, das nur Zahlen akzeptiert.

Erstellen Sie eine Textbox, die nur Nummern akzeptiert, indem Sie die Klasse KeyPressEventArgs in C# verwenden

KeyPressEventArgs ist eine C#-Klasse, die das Zeichen angibt, das eingegeben wird, wenn ein Benutzer eine Taste drückt. Ihre Eigenschaft KeyChar gibt das Zeichen zurück, das der Benutzer eingegeben hat. Hier haben wir das Ereignis KeyPress verwendet, um unsere Textbox auf numerische Werte zu beschränken.

Der Tastencode, der diese Aktion ausführt, lautet wie folgt:

!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.');

Hier ist e ein KeyPressEventArgs-Objekt, das die KeyChar-Eigenschaft verwendet, um den eingegebenen Schlüssel zu holen.

Beispiel-Code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1 {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
    private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
      if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.')) {
        e.Handled = true;
      }

      // only allow one decimal point
      if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1)) {
        e.Handled = true;
      }
    }
  }
}

Ausgabe:

//only allows numeric values in the textbox

C# TextBox akzeptiert nur Zahlen

Erstellen Sie eine Textbox, die nur Nummern akzeptiert, mit der Methode Regex.IsMatch() in C#

In C# können wir reguläre Ausdrücke verwenden, um verschiedene Muster zu überprüfen. Ein regulärer Ausdruck ist ein bestimmtes Muster, um eine bestimmte Aktion auszuführen. RegularExpressions ist eine C#-Klasse, die die Definition für die Methode Regex.IsMatch() enthält. In C# haben wir ^[0-9]+$ und ^\d+$ reguläre Ausdrücke, um zu prüfen, ob eine String eine Zahl ist.

Die korrekte Syntax zur Verwendung dieser Methode lautet wie folgt:

Regex.IsMatch(StringName, @"Expression");

Beispiel-Code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1 {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
    private void textBox1_TextChanged(object sender, EventArgs e) {
      if (System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "  ^ [0-9]")) {
        textBox1.Text = "";
      }
    }
  }
}

Ausgabe:

//A textbox created that only accepts numbers.

C# TextBox akzeptiert nur Zahlen

Erstellen Sie eine Textbox, die nur Nummern akzeptiert, mit der Methode NumericUpDown

NumericUpDown bietet dem Benutzer eine Schnittstelle zur Eingabe eines numerischen Wertes mit Hilfe von Auf- und Ab-Tasten, die mit dem Textfeld angegeben werden. Sie können einfach ein NumericUpDown aus der Toolbox ziehen und ablegen, um eine Textbox zu erstellen, die nur Nummern akzeptiert.

Sie können ein NumericUpDown-Objekt auch dynamisch erzeugen. Der Code zur Erzeugung eines NumericUpDown lautet wie folgt:

private System.Windows.Forms.NumericUpDown numericUpDown;
this.numericUpDown = new System.Windows.Forms.NumericUpDown();

Es hat mehrere Eigenschaften, die Sie ändern können, indem Sie die Properties Windows öffnen.

Ausgabe:

C# TextBox akzeptiert nur Zahlen Numeric Up Down

Verwandter Artikel - Csharp Textbox