Eingabe eines Zeichens nur an bestimmter Stelle zulassen. (TextBox) -=gelöst=-
-
Hi Leute. Da bin ich schon wieder mit meinem nächsten Problem, wozu ich in der SuFu nichts gefunden habe. (oder ich war zu dämlich die richtigen Kriterien einzugeben)
Ich versuche diesmal so genau wie möglich mein Problem zu beschreiben:
Ich möchte in meiner TextBox die Eingabe von Negativen Zahlen ermöglichen und gleichzeitig halt dafür sorgen, dass der User keine falschen Eingaben machen kann.
ich habe eine TextBox und befinde mich im Anweisungsblock der Eventfunktion KeyPress.
Ich möchte gerne, dass das Zeichen '-' NUR an erster Stelle eingegeben werden darf.Ich habe bisher weitere Eingaben dieses Zeichens verboten, sodass es nur einmal verwendet werden darf. Aber das Problem dabei ist, dass es auch mittendrin verwendet werden darf wenn es am Anfang noch nicht gesetzt wurde.
Wie realisiere ich mein Vorhaben?
-
Ich würde eine entsprechende Regex schreiben und damit validieren.
-
hm...
da ich als GUI Einsteiger noch keine Ahnung habe von Regular Expressions, habe ich es folgendermassen gelöst:
IN dem Event KeyPress der TextBox schreibe ich folgendes in den Anweisungsblock:
if(e->KeyChar == '-') { if(this->textBox2->SelectionStart > 0 && !this->textBox2->Text->Contains("-")) e->Handled = true; }
Der Code sagt nichts anderes aus als:
Die Minus Taste wird dann ignoriert, wenn sich der Cursor nicht mehr an erster Stelle befindet und der Text bisher kein Minus-Zeichen enthält.Danke aber für die Antwort