Этот вопрос задан много раз, но решение по какой-то причине не работает.Передача аргументов методу в EventHandler
Я динамически создаю кнопку и назначаю ей EventHandler.
protected void Page_Load (object sender, EventArgs e)
{
Button b = new Button();
b.Click += new EventHandler(Method);
}
protected void Method (object sender, EventArgs e)
{
//Do work here
}
мне нужно передать аргумент, так что самый простой способ, которым я думал был такой:
b.Click += new EventHandler(Method(sender, e, "name"));
protected void Method (object sender, EventArgs e, String name)
{
//Do work here
}
Error: Method name expected
Таким образом, после проверки на вопросы здесь, я нашел то же самое решение практически любой вопрос ,
b.Click += new EventHandler((sender, e) => Method(sender, e, "name"));
Так я изменил следующее:
b.Click += new EventHandler((sender1, e1) => Method(sender1, e1, "name"));
и ошибка из Visual Studio не было, но при запуске веб-страницу, я получил эту ошибку:
System.ArgumentOutOfRangeException: Index was out of range. Must be a non-negative and less than the size of the collection.
В чем проблема, здесь я действительно потерян.
Является ошибкой 'ArgumentOutOfRangeException' на этой строке EventHandler или в другом месте? – keyboardP
Возможно, есть ссылка на код с ArgumentOutOfRangeException. Вы должны показать это здесь. – spender
@keyboardP Да именно на линии EventHandler. –