3 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
驗(yàn)證已內(nèi)置到WinForms庫中。
每個(gè)Control派生的對(duì)象都有兩個(gè)名為Validating和的事件Validated。它還具有稱為的屬性CausesValidation。如果將其設(shè)置為true(默認(rèn)情況下為true),則控件將參與驗(yàn)證。否則,事實(shí)并非如此。
驗(yàn)證是關(guān)注的一部分。當(dāng)您將焦點(diǎn)移到控件上時(shí),將觸發(fā)其驗(yàn)證事件。實(shí)際上,焦點(diǎn)事件是按特定順序觸發(fā)的。從MSDN:
當(dāng)您使用鍵盤(TAB,SHIFT + TAB等),通過調(diào)用Select或SelectNextControl方法或?qū)ontainerControl .. ::。ActiveControl屬性設(shè)置為當(dāng)前形式來更改焦點(diǎn)時(shí),將在以下位置發(fā)生焦點(diǎn)事件:以下順序:
輸入
重點(diǎn)
離開
證實(shí)
已驗(yàn)證
失落的焦點(diǎn)
當(dāng)您使用鼠標(biāo)或通過調(diào)用Focus方法來更改焦點(diǎn)時(shí),焦點(diǎn)事件將按以下順序發(fā)生:
輸入
重點(diǎn)
失落的焦點(diǎn)
離開
證實(shí)
已驗(yàn)證
如果CausesValidation屬性設(shè)置為false,則將抑制Validating和Validated事件。
如果在Validating事件委托中將CancelEventArgs的Cancel屬性設(shè)置為true,則將抑制所有通常在Validating事件之后發(fā)生的事件。
另外,ContainerControl有一個(gè)稱為的方法ValidateChildren(),該方法將循環(huán)遍歷包含的控件并進(jìn)行驗(yàn)證。
- 3 回答
- 0 關(guān)注
- 635 瀏覽
添加回答
舉報(bào)