【发布时间】:2016-07-29 09:59:44
【问题描述】:
我有一个想要以某种方式运行的 Textedit 控件:
当控件具有输入焦点时,我只想允许输入正整数(不是零)。我通过使用 Properties.Mask 来实现这一点,效果很好。
当控件没有输入焦点时,我希望它显示输入的数字,但末尾带有“,00”。
所以基本上,当我输入一些东西时,我只会看到我输入的内容,例如“17”,但当控件失去焦点时,我希望它显示“17,00”。这样我就只能输入整数正数,但控件之后总是会添加“,00”。
我的理解是基本上有两种不同的“模式”:DisplayMode和EditMode。
EditMode = 控件具有焦点。
DisplayMode = 控件没有焦点。
在 EditMode 中,我可以在 Textedit 控件中输入内容。能进,不能进,由面具决定。
当我失去焦点时,它会进入 DisplayMode。在这里,我无法在 TextEdit 中输入任何内容,但现在显示的文本不再由掩码确定,而是由属性“Properties.DisplayFormat”确定。因此,为了实现我的目标,我尝试将 DisplayFormat.FormatString 设置为“0.00”,以便它始终显示两位小数“x,00”。
不知何故,这并没有按预期工作。 DisplayFormat 似乎没有做任何事情,即使在 DisplayMode 下,TextEdit 仍然只显示不带小数位的整数。
我意识到我可以使用事件来解决这个问题,但我认为这就是 DisplayFormat、EditFormat 和 Mask 的用途,我真的不想为这么小的东西处理多个事件。
【问题讨论】:
标签: c# .net devexpress maskedtextbox textedit