以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  Validating 事件验证问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7359)

--  作者:i52117
--  发布时间:2010/6/10 13:42:00
--  Validating 事件验证问题
Validating事件里设置拦截 输入错误禁止离开,如何实现按Esc键忽略验证 可以跳出来? 谢谢
--  作者:kylin
--  发布时间:2010/6/10 14:14:00
--  

Validating

离开控件之前执行,通常用于验证控件的内容。

e参数属性:

Sender:返回触发事件的控件
Form:   返回控件所在的窗口
Cancel: 逻辑型,设为True禁止离开控件。

示例

如果将某个DateTimePicker(日期输入框)的Validating事件设置为:

If e.Sender.Value Is Nothing Then
    e.Cancel =
True
End
If

这样直到你在该DateTimePicker中输入内容,否则你将不能离开它去选择其他控件。

但是验证也有例外的时候,例如窗口中通常有一个取消按钮,单击这个按钮,最好不用执行任何控件的Validating事件,否则我明明需要取消操作,却还得在取消之前还得输入一些内容,这不符合通常的操作习惯。为解决这个问题,只需在窗口设计的时候,将这个按钮的"执行验证"属性设为False即可,该属性位于“行为”分组中。


--  作者:狐狸爸爸
--  发布时间:2010/6/10 14:32:00
--  
默认esc就会忽略吧
--  作者:i52117
--  发布时间:2010/6/10 16:08:00
--  
以下是引用狐狸爸爸在2010-6-10 14:32:00的发言:
默认esc就会忽略吧

狐爸加上此功能吧 不然很麻烦

 

或者按下Esc 时  把控件的执行验证属性设为 false (不知是否可行  不会写此代码)


--  作者:狐狸爸爸
--  发布时间:2010/6/10 16:21:00
--  
没有办法的,你应该从自己的Validating事件代码下手,例如比较控件内容,如果没有变化就不验证了。