如何从另一个Windows窗体事件调用Windows窗体函数?

时间:2010-07-17 05:59:48

标签: .net forms

我正在.net开发一个基于Windows的应用程序。

我有两种形式。 Form2实例化并在form1中发生事件时显示。

public partial class Form1 : Form
{
    ...
    private void button1_Click(object sender, EventArgs e)
    {
       .... 
    }
    public void button2_Click(object sender, EventArgs e)   
    {
      Form2.parent = this;

      Form2 f2 = new Form2();

      f2.show();
    }

}

public partial class Form2 : Form
{
    ...
    public static Form parent;
    private void button3_Click(object sender, EventArgs e)
    {
       .... //want to call Form1's button1_Click() function.
    }

}

现在在Form2的button3_Click()函数中,我想调用Form1的button1_Click()方法。

我试过

parent.button1_Click(button3,null);

但这不起作用。

请帮忙!

1 个答案:

答案 0 :(得分:3)

您需要将parent声明为Form1类型,而不是Form

我个人会把它放在构造函数中,而不是将它作为公共静态变量:

public partial class Form1 : Form
{
    public void button2_Click(object sender, EventArgs e)   
    {
      Form2 f2 = new Form2(this);
      f2.show();
    }
}

...

public partial class Form2 : Form
{
    Form1 parent;

    public Form2(Form1 parent)
    {
        this.parent = new parent;
    }
}