【发布时间】:2018-05-25 09:54:51
【问题描述】:
我使用TEdit 允许用户输入数字,例如10.
我将TEdit.Text 转换为整数并调用计算过程。
在此计算过程中,内置检查以确保不处理低于 10 的数字。
目前我使用OnChange 事件。假设用户想要将“10”更改为“50”。但是,一旦删除了“10”或键入了“5”(后面跟着 0),我就会触发我的警告,即最小数字为 10。即程序不会等到我完全输入 5 和 0。
我试过OnEnter、OnClick、OnExit,但我似乎没有克服这个问题。唯一的解决方案是添加一个单独的按钮,该按钮将使用新数字触发计算。它可以工作,但我可以不用按钮吗?
【问题讨论】:
-
这是一个经典问题。最好不要太具有侵略性。尽可能避免显示对话框。他们只是伤害了用户。在编辑控件中使用红色背景表示它是无效的。或者也许将输出更改为描述输入无效的文本。
-
好的,谢谢。我知道没有真正的解决方案。我考虑过延迟建造。我可以使用此 TEdit 的提示选项来告诉用户他能/不能做什么,并忽略消息框(这确实会导致痛苦)。
-
我会使用
TSpinEdit而不是TEdit。TSpinEdit专为数字输入而设计,而TEdit则用于任意文本。 -
在移动设备上旋转可能很好,但在有键盘的桌面上却很糟糕
-
限制输入总是会让用户感到沮丧。为什么我的键盘不再工作了??!!!!