2012-03-08 40 views
0

我有一個應用程序,我想開始倒數計時器。如何連接WinForms應用程序上的EventHandler?

我創建了一個EventHandler部分類下設:

event EventHandler startTimer; 

,我寫了一個函數:

public void startTimerEvent(object sender, EventArgs e) 
{ 
    this.Invoke((MethodInvoker)delegate 
    { 
     timer.Start(); 
    }); 
} 

如何註冊此的EventHandler和我在哪裏電線它了我形成?

+1

'timer'來自'startTimerEve'方法嗎? (爲什麼它有這麼一個奇怪的名字?)另外,你的偶是不公開的。 – 2012-03-08 17:15:27

回答

1

所以你需要選擇一個會觸發你的處理程序的事件。假設你有一個按鈕,並且你想處理它的點擊事件。你可以寫:

myButton.Click += new EventHandler(StartWhatEver); 

然後,你會有你的StartWhatEver做你想做的。

private void StartWhatEver(object sender, EventArgs e) 
{ 
    // Do stuff... 
} 

注:如果您在VS2010的工作,你可以輸入myButton.Click +=(含空格),然後雙擊的「Tab」鍵,這將創造您的處理程序自動爲您包括觸發方法。

希望這會有所幫助。

+0

你在第一個代碼片斷中缺少'new',並且實際上並不需要有'new EventHandler'。只要'SomeAmazingMethod'具有正確的簽名,'myButton.Click + = SomeAmazingMethod'應該工作。 – 2012-03-08 17:29:39

+0

爲此歡呼。我知道你可以使用'+ =',但我更願意明確表達,特別是在將方法論描述給那些似乎對這些特徵感興趣的人時。祝一切順利。 – MoonKnight 2012-03-08 17:31:49

+0

非常感謝,現在我明白它是如何工作的 – user979033 2012-03-08 20:10:37

2

爲了配合該事件的處理程序:

startTimer += startTimerEvent; 

但我真的不知道有沒有更好的方式去解決您的普遍問題。如果你能夠進一步描述你的想法,也許我們可以提出更好的方法。

+0

感謝它的幫助。 – user979033 2012-03-08 17:26:07