开发者

How do I call an event method in C#?

When I create buttons in C#, it creates private void button_Click(object sender, EventArgs e) method as well.

How开发者_如何学C do I call button1_click method from button2_click?

Is it possible?

I am working with Windows Forms.


How do I call button1_click method from button2_click? Is it possible?

Its wholly possible to invoke the button's click event, but its a bad practice. Move the code from your button into a separate method. For example:

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

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

This strategy makes it easy for you to call your code directly without having to invoke any event handlers. Additionally, if you need to pull your code out of your code behind and into a separate class or DLL, you're already two steps ahead of yourself.


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

or

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

or as Joel pointed out:

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


You don't mention whether this is Windows Forms, ASP.NET, or WPF. If this is Windows Forms, another suggestion would be to use the button2.PerformClick() method. I find this to be "cleaner" since you are not directly invoking the event handler.


You can wire up the button events in the ASPX file code.

The button tag will wire the events like this:

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

Just wire the OnClick= to your handler method for button1


You can bind same handler for the event of both buttons

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜