我们在设计界面时,经常会遇到需要对一些输入进行验证,以保证用户输入的有效性,而且为了程序的健壮性,这些验证应该尽量在最初,即用户一输入完就进行验证,这时,我们就用到了validate 和causesvalidation。
那么怎样区别validate 和causesvalidation?
1.validate是事件,causesvalidation是属性。
2.举例
Private Sub object_Validate(KeepFocus As Boolean)
KeepFocus, 确定控件是否失去焦点的值。KeepFocus设置为True时,控件保持焦点。
Validate 事件,是在焦点转换到另一个控件之前发生的,此时另一个控件的CausesValidation属性值设置为True(注意:这是前提,如果CausesValidation属性值设置为False,将不会发生Validate 事件)。当一个控件失去焦点的时候,在触发它的 LostFocus 事件之前,先被触发的将是它的 Validation 事件(同样,下面将要得到焦点的控件的 CausesValidation 属性需要设置为 true,否则将不会触发 Validation)。利用这种性质,可以在控件即将失去焦点之前检验数据的有效性。
用户控件提供了一个 Validate 事件,它还通过 Extender 对象提供了一个 CausesValidation 属性。当焦点从该用户控件转移到 CausesValidation 属性被设置为 true 的其他控件时,Validate 事件的代码将被执行;如果将用户控件的 CausesValidation 属性设置为 True,那么任何将焦点传递给用户控件的控件的 Validation 事件都将被触发。反之,当CausesValidation 属性设置为false时,则validate事件不被触发!