Вызов кнопки OnClick из функции - PullRequest
2 голосов
/ 27 февраля 2011

У меня есть кнопка с OnClick = Button_Click. Я хочу вызвать Button_Click из другой функции, но проблема в том, что мне нужно дать ее:

(object sender, EventArgs e)

Что я должен ввести для этих параметров? Есть ли способ обойти это?

Ответы [ 3 ]

7 голосов
/ 27 февраля 2011

Вы могли бы сделать это

 Button_Click(null,EventArgs.Empty);

хотя я согласен, что лучше извлечь функцию, которая может быть вызвана из любого места.

Например, если у вас есть

protected void Button_Click(object sender, EventArgs e)
{
  //some list of code      
}

этот код должен быть вставлен в какой-то новый метод, а затем вызван из Button_Click или любого другого метода

private void ExtractedMethod()
{ 
 //some list of code
}

 protected void Button_Click(object sender, EventArgs e)
 {
  ExtractedMethod();    
 }

Я рекомендую вам прочитать книгу Рефакторинг: улучшение дизайна существующего кода Martin Fowler . Это необходимо на полке. Время от времени вы будете возвращаться к этой книге, она вне времени.

1 голос
/ 28 марта 2013

В качестве альтернативы, если действие выполняется в основном с помощью кнопки или во избежание дополнительных методов, начиная с .Net 4.0, существует функция с именем .PerformClick (). Так

Button.PerformClick();

Выполнит нажатие кнопки изнутри кода.

0 голосов
/ 27 февраля 2011

Извлеките функциональность, имеющуюся в «onclick», в другую функцию. Вы можете позвонить из любой точки мира, включая onClick.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...