2012-05-09 6 views
4

я хочу, чтобы переопределить событие, я имею в виду, у меня есть это:как я параметризировать событие в C#

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

при нажатии кнопки «Boton» нажата, функция/метод «infoApp» Триггеры, этот метод его что-то вроде этого:

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*/ 
} 

, но это не так.

Я читал такие вещи, как делегаты, но я не понимаю; и я не знаю, что делать, чтобы решить мою проблему; есть идеи?

Заранее спасибо

ФД: огорчен мой ужасный английский, я не английский спикер. Попытайтесь просто объяснить. Я использую VS2008.

+1

Где ваш обязательный параметр? Если это свойство на другом элементе управления формы, просто введите свойство внутри обработчика событий? –

ответ

9

Одним из способов вы могли бы решить эту проблему, было бы обернуть обработчик событий закрытия:

Вместо этой линии:

boton.Click += infoApp; 

это сделать:

string par = "something"; 

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

+1, и на самом деле вам даже не нужно включать 'object' или' EventArgs', если вы не ищете ясности. – user7116

+0

Hah - просто исправлено это :) –

+0

Спасибо большое, Дэйв! – karlos9o