C# eingabe textbox begrenzen?
Hallo,
Ich möchte in C# eine textbox erstellen, die aber nur die zahlen 1-8 eingeben lassen darf. Da wollte ich gerne wissen, wie man das programmieren kann.
LG
2 Antworten
Verschiedene Möglichkeiten. Die einfachste ist, im Validating-Event zu prüfen, ob die Eingabe korrekt ist und ggf. eine Meldung auszugeben.
Wenn Du wirklich die Tastendrücke begrenzen willst, dann kannst Du den entpsprechenden KeyDown, KeyUp oder KeyPress Event implementieren. Beachte aber, dass Du dabei ALLE Tasten berücksichtigen musst, die erlaubt sein sollen, also insbesondere auch Cursortasten, Löschtaste, etc.
Moin!
Regex regex = new Regex(@"[^0-8]");
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
MatchCollection matches = regex.Matches(e.KeyChar.ToString());
if (matches.Count > 0)
{
e.Handled = true;
}
}
Kurzum erzeugen wir einen regulären Ausdruck und geben dem KeyPressEvent von der Textbox was zu tun.
Wenn der eingegebene Buchstabe NICHT der angegebenen 0 - 8 entspricht, erhöht sich der Count und die Textbox wurde schon gehandled und die Eingabe ignoriert.
So kannst du also nur die Zeichen 0 bis 8 in die Textbox eingeben.
Um sowas wie Delete zu verwenden, musst du das If-Statement erweitern.
if (matches.Count > 0 && !e.KeyChar.ToString().Contains("\b"))
LG