2011-06-22 160 views
1

我有一个按钮,点击时显示一些信息,我可以手动触发代码中的按钮点击事件?手动触发事件c#

我需要这个,所以当我点击其他按钮时,它也会自动触发这个事件。

+0

你为什么不只是打电话通知其他事件处理程序,而不是触发事件本身?或者为这两个事件订阅相同的事件处理程序? – CodesInChaos

回答

5

一个好方法是在事件处理程序中没有代码(除了方法/函数调用)。这可以在程序中的任何地方调用它。

+0

另外,看看像MVC或MVP模式。他们会帮助你实现这一点。 – Matthias

1

将代码回复到函数中的按钮单击,并在事件处理函数中和其他函数中调用该函数。

1

你可以这样做。

private void button1_Click(object sender, EventArgs e) 
{ 
    MessageBox.Show("button1"); 
} 

private void button2_Click(object sender, EventArgs e) 
{ 
    MessageBox.Show("button2"); 
    button1_Click(sender, e); 
} 
-1

有两种方法可以做到这一点,

1# - =移动,你都写在按钮单击事件到另一个函数的代码,并在此按钮单击事件和其他按钮单击事件调用该函数也。

2# - 对于第二个按钮单击事件,请指定第一个按钮单击事件作为事件处理程序。

3# - 在button2中调用button1的事件处理程序。

private void button2_Click(object sender, EventArgs e) 
{ 
    button1_Click(sender, e); 
} 

我会建议你去第二个,如果你必须为这两个按钮设置相同的功能。

+0

问题是我正在对一些函数进行异步调用,并且我想要触发的这个事件应该在它的结尾发生,所以我可以指定第二个按钮的事件处理程序以第一个按钮。 –

1

如果你不关心的发件人或EventArgs的,你也可以简单地使用

Button1_Click(null, new EventArgs());