4

私はイベントを再定義したい、つまり、私はこれを持っています:

boton.Click += infoApp;
//i think thats similar to: boton.Click = new System.EventHandler(infoApp).

ボタン「ボタン」がクリックされると、関数/メソッド「infoApp」がトリガーされます。このメソッドは次のようになります。

private void infoApp(object sender, EventArgs e)
{
/* my code*/
}

ここまではすべてうまくいきます。しかし、そのメソッドに別のパラメーターを送信する必要があります。

boton.Click += infoApp(string par)

だから私はこれがうまくいくと思った:

private void infoApp(object sender, EventArgs e, string par)
{
/*My code*/
}

しかし、そうではありません。

デリゲートのようなものを読みましたが、わかりません。問題を解決するために何をすべきかわかりません。何か案は?

前もって感謝します

pd: ひどい英語で申し訳ありません。私は英語を話せません。簡単に説明するようにしてください。私はVS2008を使用しています。

4

1 に答える 1

9

これを解決する方法の 1 つは、イベント ハンドラーをクロージャーでラップすることです。

この行の代わりに:

boton.Click += infoApp;

これを行う:

string par = "something";

boton.Click += (sender, e) => {
  //Now call your specific method here:
  infoApp(sender, e, par);
};
于 2012-05-09T14:10:48.553 に答える