2012-03-08 7 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'メソッドのどこから来ますか? (そして、それはなぜそんなに奇妙な名前を持っていますか?)また、あなたの偶数は公開されていません。 –

答えて

1

したがって、ハンドラをトリガするイベントを選択する必要があります。ボタンがあり、そのクリックイベントを処理したいとします。あなたは書くことができます:

myButton.Click += new EventHandler(StartWhatEver); 

あなたはあなたが望むことをあなたのStartWhatEverを持っています。

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

注:あなたがVS2010で作業している場合、あなたはmyButton.Click +=(スペース付き)をダブルタップ「タブ」キーを入力することができ、これはあなたが自動的に起動する方法を含むためにあなたのハンドラを作成します。

これが役に立ちます。

+0

最初のコードスニップに 'new'がありません。実際には' new EventHandler'は必要ありません。 'myButton.Click + = SomeAmazingMethod'は、' SomeAmazingMethod'が正しい署名を持っている限り動作します。 –

+0

それに乾杯。私はあなたが '+ ='を使うことができることを知っていますが、私は明示的にすることを好みます。ではごきげんよう。 – MoonKnight

+0

ありがとう、今私はそれが仕事であることを理解しています – user979033

2

ハンドラにイベントを結びつけるために:

startTimer += startTimerEvent; 

しかし、私はあなたの一般的な問題の解決について移動する良い方法はありません、本当にわかりません。あなたが何を後にしているかをさらに記述できれば、もっと良い方法を提案するかもしれません。

+0

助けてくれてありがとう。 – user979033

関連する問題