我是新来的,我有疑问。可以将方法转移到另一种方法吗?
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”消息。这可能吗?
答案 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()