这是有一个多文档窗体,其中有一个主窗体mainform,还有多个子窗体childredform1,childrenform2,childrenform3,childrenform4
。可以在这个主窗体中打开多个子窗体,但是只有一个是当前活动窗体,
并且还要可以循环调用这几个子窗体,请高手指点一下这个代码要怎么写
????????????

解决方案 »

  1.   

    不明白额。你可以新建一个MDI类型的窗体,看看是不是你要的风格
      

  2.   

    把一个普通窗体的mdicontainer设成true,这个窗体就变成了“多文档”程序的主窗口。
    然后child1 cd1 = new child();
    cd1.mdiparent = this;
    cd1.show();
    大概就是这样的了,不知道你具体的问题。
      

  3.   

    我的问题是这样的,在一个主窗体mainform中,把这个窗体设置为父窗体,这个父窗体中还有几个子窗体childrenform1,childrenform2,childrenform3childrenform4,然后是这几个子窗体可以同时存在于这个主窗体中……
    但是相同的子窗体只能存在一个……就是这样的
      

  4.   

    给出思路:遍历所有已打开的子窗体是否打开,如果已打开测激活。如果不存在,打开子窗体。
    楼主可以用了窗体的name属性来判断。
    以下给出代码:公共方法:
    private bool checkChildFrmExist(string childFrmName)
            {
                foreach (Form childFrm in this.MdiChildren)
                {
                    if (childFrm.Name == childFrmName) //用子窗体的Name进行判断是否已实例化,如果存在则将他激活
                    {
                        if (childFrm.WindowState == FormWindowState.Minimized)
                            childFrm.WindowState = FormWindowState.Normal;
                        childFrm.Activate();
                        return true;
                    }
                }
                return false;
            }以下是调用              from subform = new from()
                if (!checkChildFrmExist(subform.Name.ToString()))
                {
                    subform.MdiParent = this;
                    subform.Show();
                }
      

  5.   

    只要把这些窗体定义在主窗体的类中,而且只在构造函数里new就好了。其他地方不要new。
    然后再调用的时候只要调用Show或Hide
      

  6.   

    非常感谢楼上的朋友,现在我已经找到了关于这个问题的解决方法了,在这里与大家一起分享:
    public form1 form1;
    public form2 form2;
    private button1_click()
    {
    if ( form1 == null || form1.IsDisposed )
        {
             form1 = new Form1 ();
        }    form1.Show();
    }
    form2同上