C# Erstellen Sie ein Textfeld, das nur Zahlen akzeptiert
-
Erstellen Sie eine
Textbox
, die nurNummern
akzeptiert, indem Sie die KlasseKeyPressEventArgs
in C# verwenden -
Erstellen Sie eine
Textbox
, die nurNummern
akzeptiert, mit der MethodeRegex.IsMatch()
inC#
-
Erstellen Sie eine
Textbox
, die nurNummern
akzeptiert, mit der MethodeNumericUpDown
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
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.
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: