2012-04-05 63 views
2

我使用Textbox_Validating事件來驗證我的窗口形式的一個文本框。 我想驗證文本框,如果texbox的文本更改。所以我從textbox_Texchanged事件調用了驗證事件。但是,只要我按下一個鍵,就會觸發textchanged事件並因此觸發text_Validating事件。 如果文本屬性由於按鍵而發生更改,我想阻止對Text_Validating的調用。但是,如果有人協調txtbox.Text="asdf";,我想在這種情況下觸發驗證事件。驗證上一個文本框框TextChanged但不是在按鍵

private void txt8Ydere1_TextChanged(object sender, EventArgs e) 
    { 
     txt8Ydere1_Validating(sender,null); 
    } 
+1

爲什麼不使用文本框上的LostFocus事件來調用驗證方法? – ImGreg 2012-04-05 13:28:58

+0

@ImGreg,我想它應該工作 – 2012-04-06 07:10:15

回答

0

我會使用LostFocus事件的文本框。您可以從該事件中運行驗證。

查看msdn瞭解更多信息。

1

可以阻止呼叫通過在的keydown這樣

txt8Ydere1.Validating-=txt8Ydere1_Validating; 

將此代碼,使用keyUp事件......

檢查txtbox.Text equals "asdf",如果這樣你就可以驗證事件直接調用驗證方法,無需重新訂閱事件

txt8Ydere1_Validating(sender,null); 
+0

但是,如果我調用txt8Ydere1_Validating(發件人,空);在TextChanged事件中,keydown事件將導致文本更改,同時它將調用txt8Ydere1_Validating(sender,null) – 2012-04-06 07:09:14