当我在c#中创建按钮时,它会创建私有的void按钮?_click(object sender,EventArgs e)方法。
如何从button2_click调用button1_click方法?有可能吗?
我正在使用Windows窗体。
答案 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)
您可以为两个按钮的事件绑定相同的处理程序