假设我的父窗体上有一个新建按钮,单击后就生成一个新窗体;按钮代码如下:
     Form1 fr = new Form1;
    fr.MdiParent = this;
    fr.Show();我是想在我新建了N个窗体后,我单击父窗体的一个按钮,就把这群子窗体都全部关闭掉。请问那按钮的代码是如何写呢??

解决方案 »

  1.   

    我这没VS,
    大概可以这么写
    for(int i=0;i<application.openform.count;i++)
    {
    if(application.openform[i].owner.name == this.name)
    application.openform[i].close();
    }
      

  2.   

    你可以这样,把打开的窗体全部保存到集合,然后遍历集合,关闭全部窗体        //关闭全部子窗体
            private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < forms.Count; i++)
                    ((Form)forms[i]).Close();
            }        List<Form> forms = new List<Form>();
            //打开子窗体
            private void button2_Click(object sender, EventArgs e)
            {
                Form1 d = new Form1();
                d.MdiParent = this;
                forms.Add(d);
                d.Show();
            }
      

  3.   

    Form   activeChild   =   this.ActiveMdiChild;  
       
      while   (activeChild   !=   null)  
      {      
      activeChild.Close();  
      activeChild   =   this.ActiveMdiChild;  
      }
      

  4.   

       顶4楼,
         你是从活动(ActiveMdiChild)入手的,但是也可以从他们的(IsMdiChild)入手或许也可以,
        我试了下,不知道怎么用,你看呢?
      

  5.   


    foreach (Form item in this.MdiChildren)
    {
       item.Close();
    }
      

  6.   

    oreach (Form F in this.MdiChildren)
                    F.Close(); 
      

  7.   

        7楼10楼把我用MdiChildren做出来了, 我顶了!