2012-05-09 22 views
4
私はイベントを再定義したい

で、イベントをパラメータんが、私はこれを持っていますこのような この方法その何か:はどのように私は私が意味する、C#の

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

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

boton.Click += infoApp(string par) 

ので、私はこれが仕事ができることを考えた:

private void infoApp(object sender, EventArgs e, string par) 
{ 
/*My code*/ 
} 
が、それはしません。

私は代議員のようなものを読んだことがありますが、わかりません。私は自分の問題を解決するために何をすべきかを知らない。何か案は?事前に

おかげ

PD:私のひどい英語による申し訳ありませんが、私は英語話者ではありませんよ。簡単な説明をしよう。私はVS2008を使用しています。これを解決することができ

+1

どこ:

boton.Click += infoApp; 

これを行いますあなたの必須パラメータはどこから来ますか?それがフォームの別のコントロールのプロパティであれば、イベントハンドラの内部でプロパティを取得するだけですか? –

答えて

9

一つの方法は、クロージャ内にイベントハンドラをラップすることです:

代わりに、この行の

string par = "something"; 

boton.Click += (sender, e) => { 
    //Now call your specific method here: 
    infoApp(sender, e, par); 
}; 
+0

+1、実際には、明快さを求めているのでなければ、実際には 'object'や' EventArgs'を含める必要はありません。 – user7116

+0

ハ - ちょうどそれを固定:) –

+0

ありがとう、たくさんのデーヴ! – karlos9o

関連する問題