2012-10-11 21 views
1

我對Windows窗體有點新,所以我很抱歉,如果有一個簡單的解決方案,但我找不到任何東西在谷歌上。如果我將一個項目(例如一個文本框)拖到窗體上,然後雙擊它,將爲我創建textbox_TextChanged函數。這按預期工作。但是,如果我試圖添加一個新的函數,如textbox_Click,它將永遠不會被調用。在另一個項目中,我試圖添加一個textbox_Validating函數,它也沒有被調用(我確認在屬性中進行了驗證)。Windows窗體文本框功能不被稱爲

有誰知道爲什麼只有TextChanged函數被調用?

這裏是什麼工作:

 private void textBox2_TextChanged(object sender, EventArgs e) 
    { 
     textBox2.BackColor = activeColor; 
    } 

這裏是不工作:

private void textBox2_Click(object sender, EventArgs e) 
    { 
     textBox2.BackColor = activeColor; 
    } 

我已經設置在textBox2_Click方法中設置斷點,它永遠不會被調用。我瀏覽過網頁,並嘗試其他方法,如_LeftMouseClick和_LeftMouseButtonDown,但他們不工作以太。

這也不能正常工作:

protected void tbNewPassword_Validating(object sender, CancelEventArgs e) 
    { 
     if (tbNewPassword.Text.Length < 6) 
      epErrorProvider.SetError(tbNewPassword, "Your password must be 6 characters or longer."); 
    } 

如同_Click方法,我設置一個斷點,它永遠不會被調用。

+0

顯示您到目前爲止所嘗試的內容。 –

+0

請上傳我的設計師和.CS文件代碼 – andy

+0

@mahditahsildari查看更新 – user1287523

回答

4

選擇文本框,打開屬性窗口,在頂部有一個看起來像閃電的小圖標(頂部有一些其他圖標,看起來像'A到Z'),單擊它,它會顯示所有的事件。向下滾動,驗證結束。輸入驗證函數名稱,按回車鍵,代碼中將顯示驗證函數。在那裏添加你的代碼。

這可以幫助您添加活動。

,或者你需要直接添加事件處理程序,像

this.btnIsConnected.Click += new System.EventHandler(this.btnIsConnected_Click); 
+0

哈我認爲這是很簡單的事情。謝謝。 – user1287523

+0

這是準確的。基本上你必須告訴那個控件在被點擊時該做什麼。如果您有興趣通過代碼執行此操作,請參閱:http://msdn.microsoft.com/en-us/library/ms743596.aspx查看代碼可能有助於瞭解發生了什麼,即使您選擇使用上面解釋的設計視圖方法。 – CptSupermrkt

+0

我不明白爲什麼每個教程,例子或代碼片段都沒有解釋這是第一步!非常感謝! – Wes

0

您已經創建了一個有效的內碼的事件,但它不會被調用。爲什麼?因爲它沒有附加到您的控件(在這種情況下是文本框),因此您可以將事件處理程序附加到控件上,您可以使用check this post。爲了熟悉所有事件@ urlreader的帖子很有用。