我写了一个C#的程序,打开时主窗口中默认打开一个子窗口,想要打开其他窗口并把已经打开的所有子窗口关闭,怎么操作啊?

解决方案 »

  1.   

    class MainForm : Form
    {
        private Form currentChildForm = null;    private void ShowForm2()
        {
            if(currentChildForm != null)
                currentChildForm.Close();        Form2 f2 = new Form2();
            currentChildForm = f2;
            f2.Show();
        }
    }
      

  2.   

                foreach (var item in FrmParent.MdiChildren)
                {
                    item.Close();
                }
      

  3.   

    foreach (Form childForm this.MdiChildren)
    {
    childForm.Close();
    }
    Form newForm = new Form();
    newForm.MdiParent = this;
    newForm.Show();
      

  4.   

            #region MDI子窗体实例化一次
            /// <summary>
            /// 名称:CheckChildOpenState
            /// 功能:用子窗体的Name进行判断是否已实例化,如果存在则将他激活
            /// </summary>
            /// <param name="MdiForm">容器窗体</param>
            /// <param name="ChildForm">子窗体</param>
            public static void CheckChildOpenState(Form MdiForm, Form ChildForm)
            {
                foreach (Form tempChildForm in MdiForm.MdiChildren)
                {
                    if (tempChildForm.Name == ChildForm.Name.ToString())
                    {
                        if (tempChildForm.WindowState == FormWindowState.Minimized)
                        {
                            tempChildForm.WindowState = FormWindowState.Normal;
                        }
                        tempChildForm.Activate();
                        return;
                    }
                }
                ChildForm.MdiParent = MdiForm;
                ChildForm.Show();
            }
            #endregion看看这个方法,你可能会改变你的想法。