Hallo, Anwender soll eine Zahl mit einem Komma eingeben. Wenn er versehentlich zwei Kommas eingibt, dann kommt es zum Fehler in Compiler.Und zwar wenn String in float float vOut = Convert.ToSingle(vIn); umgewandelt wird. Wie kann man es in C# verhindern? Es soll nur ein Komma zugelassen werden.
Die Frage ist ob du mit WinForms oder WPF arbeitest? Eine Möglichkeit wäre es die Eingabe zu überprüfen, bevor sie in ein float umgewandelt wird. Im Fall von WinForms könnte dir eine MaskedTextBox helfen: http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox(v=vs.100).aspx Für MaskedTextBox in WPF kannst du hier fündig werden: http://stackoverflow.com/questions/481059/where-can-i-find-a-free-masked-textbox-in-wpf MfG, John
Mach ein Keydown Event, in dem jeweils geprüft wird, ob der String in der Textbox schon ein Komma beinhaltet. Wenn ja, dann soll das gefressen werden. Weiß den Befehl under C# grad nicht, aber ich denke mal wie in Java mit Consume?
1 | private void textBox1_KeyPress(object sender, KeyPressEventArgs e) |
2 | {
|
3 | |
4 | if (textBox1.Text.Contains(',') && e.KeyChar == ',') |
5 | e.Handled = true; |
6 | |
7 | }
|
KeyPress ist lückenhaft, denn entweder müsstest du Ctrl+V ebenfalls abfangen, wofür du verflucht werden wirst, oder man kann durch Pasten trotzdem etwas einfügen, was sich nicht in ein Float konvertieren lässt. Wäre also nur zusätzlich zur Prüfung beim Bestätigen des Dialogs sinnvoll. Das wiederum geht am einfachsten, wenn du ein try/catch um die Wandlung schreibst und einfach eine sinnvolle Fehlermeldung ausgibst.
Hallo! Also wir haben das damals in der Schule immer mit dem Validating-Event gemacht. Vielleicht ist das ja intressant fuer dich.. lg
der mechatroniker schrieb: > Das wiederum geht am einfachsten, wenn du ein try/catch um die > Wandlung schreibst und einfach eine sinnvolle Fehlermeldung ausgibst. Am einfachsten ist float.TryParse OHNE Exception-Handler. Gruß Markus
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.