点击子窗体按钮如何触发midi主窗体中的按钮并通过主窗体按钮打开一个新窗体?midi主窗体
form1        public void test_Click(object sender, EventArgs e)
        {            test dummyDoc = new test();
             dummyDoc.Show();
        }子窗体 form2
        private void aa_Click(object sender, EventArgs e)
        {            form1 dummyDoc = new form1 ();
             form1.test_Click(sender, e);
        }以上方法能执行 form1中的点击事件但打不开窗体,
请问大家如何解决?多谢。

解决方案 »

  1.   

    上面有点错误,应该如下
    子窗体 form2 
            private void aa_Click(object sender, EventArgs e) 
            {             form1 dummyDoc = new form1 (); 
                dummyDoc .test_Click(sender, e); 
            } 
      

  2.   

    子窗体 form2 
            private void aa_Click(object sender, EventArgs e) 
            {             form1 dummyDoc = new form1 (); //你这了生成了个主窗体的新实例,不是当前的主窗体对象
                form1.test_Click(sender, e); 
            } 
      

  3.   

    你可以在form2的构造函数里,放个form1 原引用,
    Form1 form1;
    当你在构造form2时,传个主窗体的进来,
    Form2的构造函数为:
    public void Form2(Form1 f1)
    {
    form1=f1;//传引用
    }
    调用
    form1.test_Click(sender, e);
    这样就行了
      

  4.   

    主窗体:
      public void button3_Click(object sender, EventArgs e)
            {
                Form2 fr = new Form2();
                
                fr.Show();
            }
    子窗体:
       private void button1_Click(object sender, EventArgs e)
            {
                Form1 fr1 = new Form1();
                fr1.button3_Click(sender,e);
            }
      

  5.   

    建议楼主看一下chires sells 写的Windows Form 程序设计一书的代码示例,讲的很清楚很明白,我写过一个大概的介绍,并且包含他的完整MDI设计程序代码。
    浅谈Windows Forms应用程序模型
    http://blog.csdn.net/zhzuo/archive/2008/07/23/2700053.aspx
      

  6.   

    我的方法,用正常的winform可以打开,但若用了一个继承类窗体,就不可以打开(在midi窗体可以打开,通过子窗体调用MIDI来就打不开)。
      

  7.   

    我的方法,要被打开的窗体用正常的winform可以打开,但若用了一个继承类窗体,就不可以打开(在midi窗体中可以打开,通过子窗体调用MIDI窗体来就打不开)。