如何在C#中调用事件方法?

如何在C#中调用事件方法?,c#,button,event-handling,C#,Button,Event Handling,当我在C#中创建按钮时,它也会创建private void button\u Click(objectsender,EventArgs e)方法 如何从button2\u-click调用button1\u-click方法? 可能吗 我正在使用Windows窗体 // No "sender" or event args public void button2_click(object sender, EventArgs e) { button1_click(null, null); } 或

当我在C#中创建按钮时,它也会创建
private void button\u Click(objectsender,EventArgs e)
方法

如何从
button2\u-click
调用
button1\u-click
方法?
可能吗

我正在使用Windows窗体

// No "sender" or event args
public void button2_click(object sender, EventArgs e)
{
   button1_click(null, null);
}

或者正如乔尔所指出的:

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

您可以在ASPX文件代码中连接按钮事件

按钮标记将连接以下事件:

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


只需将OnClick=连接到button1的处理程序方法,您就不会提到这是Windows窗体、ASP.NET还是WPF。如果这是Windows窗体,另一个建议是使用button2。()方法。我发现这是“更干净的”,因为您没有直接调用事件处理程序

如何调用button1\u click方法 从按钮2\u单击?可能吗

调用按钮的click事件是完全可能的,但这是一种糟糕的做法。将代码从按钮移动到单独的方法中。例如:

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

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

此策略使您可以轻松地直接调用代码,而无需调用任何事件处理程序。此外,如果您需要将代码从后面的代码中提取出来并放入一个单独的类或DLL中,您已经领先自己两步了。

您可以为两个按钮的事件绑定相同的处理程序,或者如果您希望button1成为“发送者”按钮,请单击(this.button1,e);
protected void btnDelete_OnClick(object sender, EventArgs e)
{
    DeleteItem();
}

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