2009-08-21 106 views
2

在.NET WinForms應用程序中創建按鈕的實例時,.CausesValidation屬性設置爲True。爲什麼會假設所有按鈕都會引發驗證事件?這不意味着,默認情況下,只要按鈕只獲得焦點,帶有_Validating事件的窗體上的所有控件都會調用該事件。爲什麼.CausesValidation按鈕默認設置爲True?

是不是獲得焦點在一個小按鈕上提前來調用驗證事件?特別是默認?按鈕點擊似乎是驗證發生的更合適的默認時間。

我問,因爲我想確定我正確理解WinForms驗證模式。

回答

3

我猜這是兩個邪惡中最安全的。通常按鈕處理數據;通過這種方式,如果你什麼也不做,默認情況是你的數據被驗證,如果你實際上不想驗證它,它將是非常明顯的(因爲它不起作用)。

與替代方案相比 - 你什麼都不做,並且你的按鈕靜靜地成功地對無效數據執行操作,並且你沒有注意到,因爲它很微妙。

第一種可能更安全,即使它確實會引起一些刺激。

相關問題