C# eingabe textbox begrenzen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting