VB6+;VB.NET lostFocus vs Validate?

VB6+;VB.NET lostFocus vs Validate?,vb.net,validation,vb6,Vb.net,Validation,Vb6,我确信这两个问题都适用,虽然我通常使用VB6代码,但为什么要使用失焦vs验证?例如,假设我需要在出生日期的文本框中输入日期,我想确保日期是以mm/dd/yyyy格式输入的,为什么我要选择Validate vs Lost Focus?当用户将焦点从该控件移动到另一个控件时,仅会触发Lost Focus。已验证事件在验证点激发。有关验证的更多信息,请点击此处: 请注意,您应该使用datetimepicker进行日期输入;这样,您就不必担心输入的格式,因为它的值属性是日期除了Matt的答案之外,逐字段

我确信这两个问题都适用,虽然我通常使用VB6代码,但为什么要使用失焦vs验证?例如,假设我需要在出生日期的文本框中输入日期,我想确保日期是以mm/dd/yyyy格式输入的,为什么我要选择Validate vs Lost Focus?

当用户将焦点从该控件移动到另一个控件时,仅会触发Lost Focus。已验证事件在验证点激发。有关验证的更多信息,请点击此处:


请注意,您应该使用datetimepicker进行日期输入;这样,您就不必担心输入的格式,因为它的
属性是
日期

除了Matt的答案之外,逐字段验证在许多应用程序中并不实用。一个控件的验证可能取决于另一个控件的值,或者涉及复杂的业务规则。当我想对文本进行验证并可能防止用户离开该控件时,我使用Validate。我通常避免失去焦点,但可能会使用它来调整控件的一些琐碎的视觉方面,例如更改背景颜色以显示焦点所在的位置……即使您不使用
日期时间选择器
,也没有理由这么严格
DateTime
可以从区域性的任何合法格式进行解析。