社区
VB
帖子详情
TextBox的Validating 和Validated?
niefenger
2002-06-01 11:07:57
加精
请问大家有没有用过TextBox的Validating 和Validated,我在用这的时候总是没什么反应,后来我发现一定要throw出错误才行(如MSDN中的示例所示),这是为什么?
...全文
590
2
打赏
收藏
TextBox的Validating 和Validated?
请问大家有没有用过TextBox的Validating 和Validated,我在用这的时候总是没什么反应,后来我发现一定要throw出错误才行(如MSDN中的示例所示),这是为什么?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sumtec
2002-06-02
打赏
举报
回复
忘了说了,Validated事件一定在Validating后面发生。也就是说,如果你没有执行e.Cancel = True 这一句,那么就一定会激发Validated事件。
sumtec
2002-06-02
打赏
举报
回复
Validating事件是在用户改变某个控件的某项值时激发的,比如改变TextBox的Text。通常,要激发Validating需要设CausesValidation属性为true。
你可以在Validating事件里面检查改变的值是否合法。
例如你规定TextBox的Text只能输入ABC三个字母中的某一个或几个,当用户输入或改变时就会激发Validating事件,你可以在Validating事件的委托里面检查TextBox.Text是不是仅仅由ABC三个字母中的某一个或几个构成。
如果是,可以什么都不做就退出该过程;如果不是,你只要执行这一句:
e.Cancel = True
就可以取消操作(可能而已,我没试过。MSDN的说法是:取消该事件之后的所有事件。我不知道TextChanged事件是不是在Validating后面发生。)
e.Cancel = True
^^^^^^^^^^^^^^^^关键就是这一句,而不在于Throw出错误!MSDN的例子里面也有这一句,可能是你没有注意到。
C#
TextBox
中的
Valid
a
ting
与
Valid
ated
事件
valid
a
ting
事件发生的时候,值还没有被真正存入,所以是空的,而
valid
ated
事件发生的时候,值已经存入,所以能取出;一个相当于值的前因,一个相当于值的后果。也就是说,可以用
valid
a
ting
事件在值存入之前检验某个先决条件,如果不满足,那么取消之前的操作,用e.cancel;如果要检验值本身的合法性,那么就用
valid
ated
事件在值存入之后得到该字段的值。这也是为什么
valid
at
VB
16,718
社区成员
110,520
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章