小弟目前在2005下有个mdi程序实现从form1的菜单里打开form2(from2的父窗体是form1),form2操作后打开form3,要求指定form3的父窗体为form1,要如何实现?我在from2下面写成如下
form3 frm3 =new form3();
frm3.mdiparent=this.mdiparent;
但是没有效果,望各位指教。

解决方案 »

  1.   

    我在from2下面写成如下
    form3 frm3 =new form3();
    frm3.mdiparent=this.mdiparent;
    frm2.show(); ----掉了这句。
      

  2.   

    呵呵, 写成
    form3 frm3 =new form3();
    frm3.mdiparent=this.mdiparent;
    frm2.show();-------这句错了,frm3
      

  3.   

    show这句肯定是有的,只不过出来的form3不是form1的子窗体
      

  4.   

    当然,因为frm3.mdiparent=this.mdiparent;中的this不是form1,而是form2.你要先把form1的实例传到form2中,然后写成frm3.mdiparent=form1.mdiparent.
    关于窗体间如何传值,请参见
    http://blog.csdn.net/tjvictor/archive/2006/06/23/824617.aspx
      

  5.   

    总结:
        Form1 --主窗体
        Form2 --子窗体
        Form3 --子窗体要写代码应该很简单的啊.
      

  6.   

    Form1中按钮点击事件:
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm2 = new Form2();
                frm2.MdiParent = Form1.ActiveForm;
                frm2.Show();
            }
    Form2中按钮点击事件:
            private void button1_Click(object sender, EventArgs e)
            {
                Form3 frm3 = new Form3();
                frm3.MdiParent = Form1.ActiveForm;
                frm3.Show();
            }就这么简单,你试试吧.呵呵.