求助:VB.NET中关于Validating和Validated的区别问题

yhj8848 2012-01-24 11:18:09
本人最近学习VB.NET,当看到textbox文本框Validating和Validated这两个事件时,有点懵了,首先,这个两个的我是理解的,Validating验证事件在控件具有焦点,以及从该控件移动到Causesvalidation=true的另一个控件时发生。而Validated事件则在焦点成功离开控件后激活。我感觉这两个事件在效果上来说没什么区别,说区别的话就是激发先后顺序的问题,而且是紧跟的,但是这两个事件的功能我个人好像感觉没什么两样,我想听听各位高手是怎么看这两个验证事件的。大家一般是在什么情况下酌情选择这两个事件中的一个的。
下面我简单编了一个例子,分别是两个文本框,一个使用Validating事件,另一个使用Validated事件分别对文本框内输入的内容是否在数字进行验证。运行后两个文本框验证的效果都是一样的:
----------------------------------------------------------------------------------------------------------
Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
If IsNumeric(TextBox1.Text) Then

Else
MsgBox("输入的不是数字")
End If

End Sub
----------------------------------------------------------------------------------------------------------
Private Sub TextBox2_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Validated
If IsNumeric(TextBox1.Text) Then

Else
MsgBox("输入的不是数字")
End If
End Sub
...全文
1006 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
苦苦的潜行者 2012-01-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sp1234 的回复:]

其实你看一下msdn:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.validating(v=vs.100).aspx#Y0

它也许有一点说得含糊,不过仔细看还是很容易看出区别。比如说,当提交操作首先验证时“CancelEventArgs 的 Cancel 属性设置为 true”,则自动取消随后的V……
[/Quote]

学习.
yhj8848 2012-01-26
  • 打赏
  • 举报
回复
楼上,我明白一点你的意思了,意思说我虽然用msbox进行了提示,但是还是照样能过了,实际上就失去意思了是不是,所以当验证不对,我得使用e.Cancel=true使其不能通过,也就不能激发Validated事件,Validating的作用我基本上也明白了,那你说Validated是用来重写验证通过后的有关通知的,这个Validated能不能跟一下它的作用
  • 打赏
  • 举报
回复
其实你看一下msdn:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.validating(v=vs.100).aspx#Y0

它也许有一点说得含糊,不过仔细看还是很容易看出区别。比如说,当提交操作首先验证时“CancelEventArgs 的 Cancel 属性设置为 true”,则自动取消随后的Validated事件,这样也就不会提交了。

而你的代码仅仅MsgBox,显然没有按照Validate的编程协议去设计代码。
  • 打赏
  • 举报
回复
Validating是用来重写验证方法的,Validated是用来重写验证通过后的有关通知的。假设验证不通过(Cacel=true),就根本不会触发Validated。

你只是在Validating中弄个MsgBox,即使名义上验证失败,可是你还是让验证通过了。那么许多.net的与Validating协调的机制也就根本无法正常执行。
源码链接: https://pan.quark.cn/s/0f7c75cb3aad ### MIPI Video Mode 与 Command Mode 的差异 #### 一、引言 MIPI (Mobile Industry Processor Interface) 是一种用于连接移动设备处理器及其外围设备的标准化接口。MIPI 接口支持多种协议,其包含 DSI (Display Serial Interface) 和 DCS (Display Control Interface) 等协议。在 MIPI 接口的应用,主要涉及两种工作模式:Video Mode(视频模式)和 Command Mode(命令模式)。本文旨在系统性地阐述这两种模式的工作机制、特性以及实际应用环境。 #### 二、LCD RAM 概念说明 在进一步探讨 MIPI 的两种模式之前,有必要对文提及的“LCD RAM”概念进行明确。实际上,“LCD RAM”并非一个通用术语,而是本文作者用来描述 LCD 控制器用于存储显示数据的内存区域。LCD(Liquid Crystal Display,液晶显示屏)通常配备一个控制 IC(Integrated Circuit,集成电路),该控制 IC 可能内置 RAM 以缓存显示数据。 #### 三、MIPI Video Mode(视频模式) **定义:** - 视频模式是一种类似于传统 RGB 接口的工作模式,它要求主机持续不断地向显示器传输刷新数据。 - 在这种模式下,数据和控制信号以报文的形式通过 MIPI 总线进行传输。 - 显示器本身无需配备帧缓冲器,因为主机会周期性地刷新屏幕。 **特点:** 1. **实时性高:** 主机需要不...

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧