2010-09-23 65 views
2

當試圖驗證窗體窗體上的控件時,我意識到每個控件的.validated()會在焦點丟失時觸發。相反,我只想在底部按下按鈕時進行驗證,我該怎麼做?立即執行所有驗證

回答

0

,您可以檢查所有的驗證條件Button_Click

/// <summary> 
    /// 
    /// </summary> 
    /// <param name="sender"></param> 
    /// <param name="e"></param> 
    private void button1_Click(object sender, EventArgs e) 
    { 
     if (!String.IsNullOrEmpty(txtUserName.Text)) 
     { 
      MessageBox.Show("Please enter user Name"); 
     } 
     else if(condition) 
     { 
     } 
     ........... 
    } 
+0

我相信OP在談論調用他的「驗證器」只是按下按鈕而不是焦點丟失 – InSane 2010-09-23 09:24:18

+0

我結束了使用這個 – 2010-09-27 08:17:53

1

當您設置CausesValidation屬性爲true .Validating(及更高版本:.Validated)當你離開的控制事件觸發。將其設置爲false或根本不處理該事件。

要進行表單級驗證,請處理.Closing事件(優於Buttonclick)並在此處編寫邏輯。調用Validating事件處理程序沒有意義。

1

將AutoValidate設置爲AutoValidate.Disable,並在按鈕單擊事件中調用ValidateChildren()方法(它將觸發所有「驗證/驗證」事件)。 MSDN