Как я могу вызвать метод события в C #? - PullRequest
5 голосов
/ 28 января 2010

Когда я создаю кнопки в c #, он также создает приватную кнопку void? _Click (object sender, EventArgs e).

Как мне вызвать метод button1_click из button2_click? Возможно ли это?

Я работаю с окнами форм.

Ответы [ 5 ]

12 голосов
/ 28 января 2010

Как мне вызвать метод button1_click от button2_click? Возможно ли это?

Вполне возможно вызвать событие нажатия кнопки, но это плохая практика. Переместите код с вашей кнопки в отдельный метод. Например:

protected void btnDelete_OnClick(object sender, EventArgs e)
{
    DeleteItem();
}

private void DeleteItem()
{
    // your code here
}

Эта стратегия позволяет вам напрямую вызывать код без необходимости вызывать какие-либо обработчики событий. Кроме того, если вам нужно вытащить свой код из кода позади и в отдельный класс или DLL, вы уже на два шага впереди себя.

11 голосов
/ 28 января 2010
// No "sender" or event args
public void button2_click(object sender, EventArgs e)
{
   button1_click(null, null);
}

или

// Button2's the sender and event args
public void button2_click(object sender, EventArgs e)
{   
   button1_click(sender, e);
}

или, как указал Джоэл:

// Button1's the sender and Button2's event args
public void button2_click(object sender, EventArgs e)
{   
   button1_click(this.button1, e);
}
3 голосов
/ 28 января 2010

Вы не упоминаете, является ли это Windows Forms, ASP.NET или WPF. Если это Windows Forms, другим предложением будет использование метода button2. PerformClick (). Я считаю, что это «чище», поскольку вы не вызываете обработчик событий напрямую.

2 голосов
/ 28 января 2010

Вы можете связать один и тот же обработчик для события обеих кнопок

2 голосов
/ 28 января 2010

Вы можете подключить события кнопки в коде файла ASPX.

Тег кнопки будет связывать события следующим образом:

<asp:Button  Text="Button1" OnClick="Event_handler_name1" />
<asp:Button  Text="Button2" OnClick="Event_handler_name1" />

Просто подключите OnClick = к вашему методу-обработчикудля кнопки 1

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