PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c# Eingabemaske festlegen


Gast
2007-04-11, 23:11:48
Hallo,

ich habe hier in einer c#-Form mehrere Eingabefelder, in welche später nur Zahlen (von 0-9, aber beliebig viele) eingetragen werden dürfen. Eigentlich wollte ich zuerst eine normale Textbox nehmen in der man alles eintragen darf und später kontrollieren und eventuell meckern, wenn keine Zahl(en) eingegeben wurde.
Jetzt habe ich aber diese maskedTextbox entdeckt, mit der man das ja schon bei der eingabe erzwingen kann.

Leider:

1.) wird dann eine Vorschau erzwungen, die später in der leeren Textbox erscheint. Die sollte aber leer sein.

2.) Muss der Cursor beim Eingabefeld direkt an den Anfang gesetzt werden, nicht mittenrein (sonst werden die stellen davor leergelassen). Für den Anwender ist das eher verwirrend. Setzt man ihn an den Anfang und gibt dann allerdings weniger Zeichen ein als festgelegt, bleiben dann hinter der Eingabe Leerstellen.

3.) Kann ich z.b. mit der Maske "0000" ja 4 Zahlen eintragen lassen, ich hättte aber gerne unbegrenzt (obere grenze wäre ok, aber kein Minimum da sonst wieder Leerstellen entstehen).

vorschläge?

Danke :)

SgtTynis
2007-04-12, 10:08:56
Mit den Masken bin ich auch nicht wirklich glücklich geworden und habe es daher mittels ValidatingType Property und TypeValidationCompleted Event gelöst.

Elemental
2007-04-14, 09:31:42
Nimm ne normale Textbox und benutze einen ErrorProvider.
http://www.codeproject.com/dotnet/errorprovider.asp
http://www.knowdotnet.com/articles/validation2.html

Den ErrorProvider benutzt du am besten im Zusammenspiel mit den Validation-Events, die SgtTynis schon genannt hat.

mfG