那肯定是Show()方法打开的吧?
那就在母窗口检查是不是子窗口是不是null呗?Show()之前,你肯定new了吧?new了就不是null了。
不是null那就肯定已经打开了。够详细了吧:-)

解决方案 »

  1.   

    this.IsMdiContainer = true;
                form aa = new form(this);//打开子窗体            
                if (panel1.Controls["form"] == null)
                {
                    aa.MdiParent = this;
                    aa.Parent = this.panel1;
                    aa.Show();
                    aa.BringToFront();
                    
                }
                else
                {
                    panel1.Controls["form"].BringToFront();调到最前
                }
      

  2.   

    參見
    http://blog.csdn.net/tjvictor/archive/2007/01/18/1486420.aspx
      

  3.   

    沒有使用MDi !
    怎麽做? 
      

  4.   

    做一个全局变量Hashtable hs,当窗体打开时hs.Add("窗体ID","窗体名称");当窗体关闭时hs.Remove("窗体ID"),在打开窗体时,if(hs.Contains("窗体ID")) {MessageBox("窗体已打开")};
      

  5.   

    通過SingLone模式
         private static MyForm _myForm
         private static Form CreateMyForm()
         { 
           if(_myForm ==null)
               _myForm  = new MyForm();
           else
              return _myForm;
         }
         調用窗體時,直接使用MyForm myform = MyForm.CreateMyForm();