我有一個文本編輯控制,我想以某種方式行事:DevExpress的正則表達式面膜不同Displayformat不起作用
當控件具有輸入焦點,我想只允許正整數的輸入(不爲零)。我通過使用Properties.Mask來實現這一點,這很好。
當控件沒有輸入焦點時,我希望它顯示輸入的數字,但在最後使用「,00」。
所以基本上,當我輸入東西時,我只看到我輸入的內容,例如「17」,但是當控制失去焦點時,我希望它顯示「17,00」。所以我只允許輸入完整的正數,但Controll總是會在後面添加「,00」。
我的理解是,基本上有兩種不同的「模式」:DisplayMode和EditMode。
EditMode =控件有焦點。
DisplayMode =該控件沒有焦點。
在EditMode中,我可以在我的Textedit控件中輸入東西。我能和不能進入的是由面具決定的。
當我失去焦點時,它進入DisplayMode。在這裏,我不能在TextEdit中輸入任何內容,但現在顯示的文本不再由掩碼確定,而是通過屬性「Properties.DisplayFormat」確定。所以爲了實現我的目標,我試圖將DisplayFormat.FormatString設置爲「0.00」,以便它始終顯示兩個小數位「x,00」。
不知何故,這並不像預期的那樣工作。 DisplayFormat似乎沒有做任何事情,即使在DisplayMode中,TextEdit仍然顯示沒有小數位的整個數字。
我意識到,我可以用事件來解決這個問題,但我認爲是什麼DisplayFormat,EditFormat和麪膜是,我真的不想處理的東西,小的多個事件。
我不能使用MaskType Numeric的原因是它允許負數和零。 有沒有辦法阻止用戶使用負數? – Smogen
@Smogen是的。您可以在掩碼中使用[Section Separator](https://msdn.microsoft.com/en-us/library/0c899ak8(v = vs.110).aspx#SectionSeparator)。將負面部分留空並使用'#'作爲數字佔位符。所以,這裏是你的面具:'###,###,###,###,###,###;'。 – nempoBu4
工作正常!非常感謝你! – Smogen