TextBox的CausesValidation屬性

  • 3702
  • 0

摘要:TextBox的CausesValidation屬性

大部分的文章(如 )對於控制項的CausesValidation屬性的介紹,主要著墨於其設定true或false時可決定前一個移出焦點的控制項是否要啟動其Validating的事件; 乍看之後通常會以為當CausesValidation設定為false時,前一個失焦的控制項的Validating事件就會不見,但事實上,CausesValidation只是個閘門而已,當它設定為 true時,會在前一個失焦控鍵驗證失敗時(Validating的CancelEventArgs 這時會等於true),隱蔽後續的事件發生。但如果驗證成功,後續的事件就可以如預期般的執行。反過來說,當CausesValidation設定為 false時,不管前一個Validating事件是否成功(CancelEventArgs設為true或false),後續的事件都不會被隱蔽起來,而陸續的依序執行。
相關的事件順序可以參考 這裡。所以關鍵在於,事件引發的順序並不會改變或不見,只是有點像在流程中插了一個梗一樣,端看你要不要拿掉而已。

本文轉至David's Blog

http://m8802528.blog.ithome.com.tw/trackbacks/586/68489