c# Im Textbox nur ein Komma zulassen

Gast #2807501
Lesenswert?

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.
Gast #2807511
Lesenswert?

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
Gast #2812670
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren