ich TextEdit Kontrolle haben, dass ich in einer bestimmten Weise verhalten wollen:DevExpress RegEx Maske mit verschiedenen Displayformat funktioniert nicht
Wenn der Steuereingabefokus hat, möchte ich nur auf die Eingabe von positiven ganzen Zahlen erlauben (nicht Null). Das erreiche ich mit der Properties.Mask, die funktioniert.
Wenn das Steuerelement keinen Eingabefokus hat, möchte ich, dass es die eingegebene Zahl anzeigt, aber mit ", 00" am Ende.
Also im Grunde, während ich etwas eingeben, sehe ich nur, was ich z. "17", aber wenn die Steuerung den Fokus verliert, möchte ich "17,00" anzeigen. Damit kann ich nur ganze positive Zahlen eingeben, aber die Kontrollstelle fügt immer ", 00" hinzu.
Mein Verständnis ist, dass es im Grunde zwei verschiedene "Modi" gibt: DisplayMode und EditMode.
EditMode = Die Steuerung hat den Fokus.
DisplayMode = Die Steuerung hat keinen Fokus.
In EditMode kann ich Dinge in meine TextEdit-Steuerelement eingeben. Was ich eingeben kann und was nicht, hängt von der Maske ab.
Wenn ich den Fokus verliere, geht es in den DisplayMode. Hier kann ich nichts in das TextEdit eingeben, aber jetzt wird der angezeigte Text nicht mehr von der Maske, sondern von der Eigenschaft "Properties.DisplayFormat" bestimmt. Um mein Ziel zu erreichen, habe ich versucht, DisplayFormat.FormatString auf "0.00" zu setzen, so dass es immer zwei Dezimalstellen "x, 00" anzeigen würde.
Irgendwie funktioniert das nicht wie erwartet. Das DisplayFormat scheint nichts zu tun und selbst im DisplayMode zeigt das TextEdit immer nur die ganze Zahl ohne die Nachkommastellen an.
Ich weiß, dass ich Ereignisse, um dieses Problem zu arbeiten, verwenden könnte, aber ich denke, das ist, was Displayformat, EditFormat und Maske sind für und ich möchte wirklich nicht, für etwas, das kleine mehrere Ereignisse behandeln.
Der Grund, warum ich den MaskType Numeric nicht verwenden kann ist, dass es negative Zahlen und Null erlaubt. Gibt es eine Möglichkeit, dem Benutzer die Verwendung negativer Nummern zu verbieten? – Smogen
@Smogen Ja. Sie können [Section Separator] (https://msdn.microsoft.com/en-us/library/0c899ak8 (v = vs.110) .aspx # SectionSeparator) in Ihrer Maske verwenden. Lassen Sie den negativen Bereich leer und verwenden Sie '#' als Ziffernplatzhalter. Also, hier ist deine Maske: '###, ###, ###, ###, ###, ###;'. – nempoBu4
Das hat funktioniert! Vielen Dank! – Smogen