我們在設計介面時,經常會遇到需要對一些輸入進行驗證,以保證使用者輸入的有效性,而且為了程式的健壯性,這些驗證應該盡量在最初,即使用者一輸入完就進行驗證,這時,我們就用到了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事件不被觸發!