yinzhm 发表于 2016-3-16 16:12:50

范围check没通过时,取消输入

inptman for winform 8.0j
gcDate控件:
设置min和max,以及MaxMinBehavior之后,每次输入都会进行范围验证及相信的行为。
我希望只在全部输入完成时(如焦点离开),做上述验证及行为。
有什么好方法吗?

顺便问一下,CanUndo什么条件下为true?

谢谢!!

Alice 发表于 2016-3-16 17:18:01

问题我们收到了。
测试后给您反馈。

yinzhm 发表于 2016-3-16 17:38:12

比如:min设置为2006/01/01,MaxMinBehavior为cancleInput,这时控件中只能输入到1990/01/0,最后一位无法输入。

Leo 发表于 2016-3-16 18:50:44

那你就不用设置控件上的MinValue, 而是从FormDesigner上点开SmartTag,选择EditValidateItems...
添加一个InvalidRange的验证项,设置MinValue = 2006-01-01
再选择EditValidateActions...
添加一个ValueProcess的验证失败动作,然后可以选择当范围超界怎么办,比如可以选择Restore,将Value恢复成开始编辑之前的值。
如果还想控制Focus不动,可以选择FocusProcess,并将PreventFocusLeave设置为True

以上,看看是否满足你的式样需求。
================
关于CanUndo,针对GcDate控件,
控件刚接收到输入焦点时(收到Enter事件),将清除Undo状态,此时CanUndo肯定是false
然后一旦用户修改了点儿什么,CanUndo就是True,之后一直为True,即便是Undo操作过还是True.

yinzhm 发表于 2016-3-16 18:59:33

Leo 发表于 2016-3-16 18:50
那你就不用设置控件上的MinValue, 而是从FormDesigner上点开SmartTag,选择EditValidateItems...
添加一个 ...

非常感谢,尝试一下。

yinzhm 发表于 2016-3-16 19:22:51

Leo 发表于 2016-3-16 18:50
那你就不用设置控件上的MinValue, 而是从FormDesigner上点开SmartTag,选择EditValidateItems...
添加一个 ...

OK了。
原来EditValidateItems和EditValidateActions要组合在一起使用,这样我就明白了。
谢谢!

第一次用InputMan,还有很多不知道的东西,以后多多请教。

Alice 发表于 2016-3-17 10:28:37

yinzhm 发表于 2016-3-16 19:22
OK了。
原来EditValidateItems和EditValidateActions要组合在一起使用,这样我就明白了。
谢谢!


谢谢反馈。
欢迎交流经验。

yinzhm 发表于 2016-3-31 10:26:25

不好意思,可以结帖了,谢谢!!!

Alice 发表于 2016-3-31 15:20:14

yinzhm 发表于 2016-3-31 10:26
不好意思,可以结帖了,谢谢!!!

谢谢反馈。
页: [1]
查看完整版本: 范围check没通过时,取消输入