将方法转移到另一种方法

时间:2014-11-28 04:25:38

标签: c# winforms

我是新来的,我有疑问。可以将方法转移到另一种方法吗?

private void button1_Click(object sender, EventArgs e)
{

}

private void c_Click(object sender, EventArgs e)
{
    MessageBox.Show("Transfer OK!!!");
}

private void button2_Click(object sender, EventArgs e)
{
     // c_Click ????? ------> button1_Click  
}

通过单击Button2,通过代码包含c_Click button1内的内容。 最后,点击button1,我需要调出“Transfer OK”消息。这可能吗?

4 个答案:

答案 0 :(得分:2)

private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show("Default Message");
    c.PerformClick();
}

private void c_Click(object sender, EventArgs e)
{
    MessageBox.Show("Transfer OK!!!");  
}

Button.PerformClick Method用于在任何方法中调用按钮点击事件

答案 1 :(得分:0)

我认为你可以在你的button2_Click中使用这样的东西:

button1.PerformClick();

or 

c_Click(sender, e);

答案 2 :(得分:0)

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

答案 3 :(得分:0)

老实说,我不知道我是否理解你的问题,而是基于你的评论:

  

我不想运行“PerformClick()”或类似的东西。基本上,   它会删除button1_Click的内容并包含C_Click   button1_Click中的内容。

     

点击button1,我需要调出“Transfer OK”消息。   Button2将具有执行button1删除的代码   内容并将包含C_Click事件的内容。我猜是的   使用“代表”或类似的东西。

您可能没有在Windows窗体的含义中使用“内容”一词。我得到的是,当你点击button2,你想要button1开始像c_Click按钮一样,对吗?

如果我找到你,你需要简单地删除button1的EventHandler for button1_Click并将其替换为c_Click,如下所示:

private void button1_Click(object sender, EventArgs e)
{

}

private void c_Click(object sender, EventArgs e)
{
    MessageBox.Show("Transfer OK!!!");
}

private void button2_Click(object sender, EventArgs e)
{
     // c_Click ????? ------> button1_Click 
    button1.Click -= new EventHandler(button1_Click);
    button1.Click +=new EventHandler(c_Click);
}

因此,在您单击button2之后,下次单击button1时,它将执行c_Click()而不是button1_Click()