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

时间:2010-01-28 05:08:47

标签: c# button event-handling

当我在c#中创建按钮时,它会创建私有的void按钮?_click(object sender,EventArgs e)方法。

如何从button2_click调用button1_click方法?有可能吗?

我正在使用Windows窗体。

5 个答案:

答案 0 :(得分:12)

  

如何调用button1_click方法   来自button2_click?有可能吗?

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

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

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

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

答案 1 :(得分:11)

// 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);
}

答案 2 :(得分:3)

您没有提到这是Windows窗体,ASP.NET还是WPF。如果这是Windows窗体,另一个建议是使用button2。PerformClick()方法。我发现这是“更干净”,因为你没有直接调用事件处理程序。

答案 3 :(得分:2)

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

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

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

只需将OnClick =连接到button1的处理程序方法

即可

答案 4 :(得分:2)

您可以为两个按钮的事件绑定相同的处理程序