Рейтинг:
37
OriginalGriff
Не. Вместо этого настройте частный метод, который выполняет эту функцию, и вызовите его из обоих обработчиков событий.
Sergey Alexandrovich Kryukov
Конечно, мой 5. Это даже невозможно, как это было буквально задано. Событие может быть вызвано только в том классе, в котором оно объявлено.
--СА
Рейтинг:
25
Monjurul Habib
private void btnA_Click(object sender, EventArgs e)
{
btnB_Click(sender, e);
}
private void btnB_Click(object sender, EventArgs e)
{
ExecuteFunction();
}
Но лучшая практика-это:
private void btnA_Click(object sender, EventArgs e)
{
ExecuteFunction();
}
private void btnB_Click(object sender, EventArgs e)
{
ExecuteFunction();
}
private void ExecuteFunction()
{
// Your code here
}
Кредит идет на
здесь
Sergey Alexandrovich Kryukov
Вы объяснили эту идею, но еще лучшей практикой было бы 1) не нарушать соглашения об именах Microsoft, используя имена с'_', которые также не являются семантическими, 2) используя анонимные методы, вызывающие семантические методы (такие как ExecuteFunction, которые должны быть названы семантически). В общем, мои 4.
--СА
Monjurul Habib
да, я согласен. спасибо.
BobJanova
Вы можете обвинить Microsoft в соглашениях для имен методов обработчика событий, "control_EventName" - это то, что вы получаете, если позволяете его автозаполнению делать свое дело. Я не совсем уверен, что вы подразумеваете под "семантическими" именами для обработчиков событий, хотя – "этот метод обрабатывает событие X из Y" кажется мне нормальным на этом фронте. Если событие вызывает какое-то сложное вычисление, которое должно иметь другое имя, это должно быть в другом методе (вполне возможно, даже не в слое пользовательского интерфейса) в любом случае.
Рейтинг:
2
shikhar gilhotra
ПРИВЕТ,
1) Возьмите две кнопки на веб-форме.
2) дважды нажмите на обе кнопки, чтобы сгенерировать их события щелчка, а затем напишите следующее :
Button1(object sender ,Eventargs e)
{
Response.write("i am button1");
Button2_click(Button2, null);
}
Button2(object sender ,Eventargs e)
{
Response.write("i am button2");
}
Гуд удачи.
OriginalGriff
Причина, по которой я голосую за одного: это плохая идея по двум причинам.
Во-первых, потому что вы не должны вызывать обработчики событий напрямую, только из их делегата. Если вы должны имитировать нажатие на другую кнопку, то используйте эту кнопку.Вместо этого метод PerformClick-это приводит к запуску всех событий, связанных с событием нажатия кнопки.
Во-вторых, потому что это может привести к сбою обработчика событий Button2. Поскольку у вас есть параметр EventArgs, передайте его или создайте новый экземпляр. Не передавайте null, так как очень мало (если вообще есть) кода, который я когда - либо видел, проверяет наличие null EventArgs-ни одно реальное событие не будет пропускать null, поэтому оно не считается необходимым.
Member 10623273
Спасибо, Приятель.
этот небольшой код мне очень помог..