如何引发事件以选择性地针对事件处理程序



我有两个按钮和一个文本框。当我单击按钮1时,我希望事件处理程序引发一个事件,使按钮2认为它已被单击。我想在不给按钮1和2相同的事件处理程序的情况下完成此操作。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        // What do I put here that would get to the button2_click handler? 
    }
    private void button2_Click(object sender, EventArgs e)
    {
        textBox1.Text = "button 2 clicked";
    }
}

上面的代码是我想要证明的一个可行性测试。目标是最终拥有一个多表单应用程序,其中在form1上单击的按钮会触发form2上按钮的button_click事件处理程序。

还有一种替代方法。

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("1 clicked");
            button2.PerformClick();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("2 clicked");
        }
    }

button2.PerformClick的作用是什么

请在此处查看非常好的答案=>链接

您可以删除设计器生成的事件处理程序(使用设计器来执行此操作,否则它不会从设计器中删除),然后实现自己的事件并手动将其挂接到2个事件,如下所示:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        button1.Click += myEventHandler;
        button2.Click += myEventHandler;
    }
    private void myEventHandler(object sender, EventArgs e)
    {
        textBox1.Text = "button 2 clicked";
    }
}

相关内容

  • 没有找到相关文章

最新更新