0

ティックごとにコードを実行したい。

timer.Tick += new EventHandler(TabPage tab = new TabPage(Convert.ToString("test"));)

しかし、これは間違っています。これを正しく行う方法を覚えていません。

他のクラス/ボイドを呼び出したくありません。EventHandler で直接コードを実行したいのです。

4

2 に答える 2

1

EventHandler」は関数デリゲートです。Tick イベントは、特定の署名に準拠する関数名を割り当てることを期待しています。次の 2 つの方法で、新しいイベント ハンドラーを割り当てることができます。

署名に一致する実際の関数を渡します。

timer.Tick += new EventHandler(MyEventHandler); //This function will be executed every tick

//Somewhere below...
private void MyEventHandler(object sender, EventArgs args)
{
    //Do stuff here
}

または、匿名デリゲートまたはラムダ関数を EventHandler 割り当てと同じ場所で使用します。

timer.Tick += new EventHandler((obj, args) =>
{
    /* Code here */
});
于 2013-05-12T11:41:07.670 に答える
0

Lambdaを使用して、このようにすることができます。

timer.Tick += new EventHandler((sender, args) => 
    {
        /* Your code */
    });
于 2013-05-12T11:42:29.960 に答える