2009-04-15 3 views
5

Так как Google провалил меня в течение последних 5-10 минут, у меня есть быстрый вопрос. Я хочу передать значение параметра в функцию, которую я вызываю из обработчика событий button.click. Событие в настоящее время добавляется с помощьюПередача параметра в System.EventHandler в C#

MyButton.Click = new System.EventHandler(MyButton_click); 

Но я хочу, чтобы функция Получать:

private void MyButton_click(int ID) 
{ 
... 
} 

Как я могу изменить свою EventHandler декларацию, так что это может быть достигнуто?

ответ

13

Button.Click определяется как есть, и нет возможности изменить его. Однако

myButton.Click += delegate { MyButton_click(1); } 

выполнит эту работу.

+0

работал как шарм. Благодарю. – corymathews

+1

lambda version: 'myButton.Click + = (sender, e) => MyButton_Click (1);' – ShawnFeatherly

0

вы можете использовать CommandArgument property, а затем бросить отправителя в обработчик события к типу Button, чтобы получить значение CommandArgument