Nur Zahlen in TextBox
-
Hallo zusammen,
ich habe vo kurzem mit c++ angefangen und bin jetzt auf ein Problem gestoßen:
==>Ich will die möglichen Zeichen bei der Eingabe in eine Textbox auf Zahlen und ein Komma eingrenzen. (0-9,",")Es geht um eine Windows Forms-Anwendung.
Habe mir schon Gedanken über eine Funktion gemacht, bin aber nicht wirklich weitergekommen.
Ich hoffe, ihr könnt mir helfen
Mfg, watson
-
Schau' mal in die Toolbox. Da gibt es eine vielversprechende Komponente "MaskedTextBox". Da gibt es eine Property Mask.
-
ok, habe jetzt eine MaskedTextBox gemacht.
Aber welche Maske brauche ich?
Es sollen eben nur 0-9 und "," als Zeichen möglich sein.
Mfg, watson
-
Was willst Du eigentlich genau eingeben? Eine Fließkommazahl? Wenn die Digits fest vergeben werden können, kannst Du einfach eine Maske definieren:
9999.99 => __, (Eine Zahl mit 4 STellen vor, zwei Stellen nach dem Komma)
Der Benutzer könnte nun beispielsweise 10,4 eingeben: __10,4_ .
Wenn Dir das zu unflexibel ist, kannst Du MaskedTextBox::ValidatingType verwendenmaskedTextBox1.ValidatingType = typeof(System.Double);
und dann das TypeValidationCompleted Event implementieren (=>Doku).
Wenn Du eine freie Positionierung brauchst 0677,567567,78,987,,987879, musst Du eben wirklich jedes Zeichen in einer Schleife abprüfen.
-
ok, habe eine funktion geschrieben:
//Nur bestimmt Zeichen in TextBox erlauben double just_digits(String string) { int string_length = length(string); double just_digits; for(int index=0; index<=string_length-1; index++) { if(IsDigit(string[index]) || string[index] == ","){just_digits += System::Convert::ToDouble(string[index]);} //IsDigit(string, index) } return just_digits; }
Funktioniert nur leider nicht.
1. Wie kann ich alle Zeichen eines Strings nacheinander in ein Array einlesen.
2. Was muss ich für IsDigit() und length() includen?Mfg, watson
-
*push* - Das ist wirklich wichtig.
Ich brauche eure Hilfe
Mfg, Watson.