将一种方法转移到另一种方法

本文关键字:方法 转移 另一种 一种 | 更新日期: 2023-09-27 18:32:15

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

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  
}
通过

单击按钮 2,通过代码包含在按钮 1 中的内容c_Click。最后,单击按钮1,我需要调出"传输确定"消息。这可能吗?

将一种方法转移到另一种方法

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 方法,用于在任何方法中调用按钮单击事件

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

button1.PerformClick();
or 
c_Click(sender, e);
private void button1_Click(object sender, EventArgs e)
{
    c_Click(sender, e);
}

老实说,我不知道我是否理解您的问题,但根据您的评论:

我不想运行"执行点击()"或类似的东西。基本上它将删除button1_Click的内容并包括C_Clickbutton1_Click内的内容。

单击按钮1,我需要调出"传输确定"消息。按钮 2 将具有将执行按钮 1 删除的代码内容,并将包括C_Click活动的内容。我想是使用"代表"或类似内容的内容。

您可能没有在 Windows 窗体意义上使用"内容"一词。我从中得到的是,当您单击按钮 2 时,您希望按钮 1 开始像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);
}
这样在你点击按钮

2后,下次你点击按钮1时,它会做c_Click()而不是button1_Click()