定义一个bool形就可以搞定吧好象
 要不就做个记数器 超过1次就给他return回去!

解决方案 »

  1.   

    http://www.cnblogs.com/Ivan-Yan/archive/2008/07/16/1244435.html
      

  2.   

           //-----------------查询一个子窗体是否存在----------------
            private bool checkChildFrmExist(string childFrmName)
            {
                foreach (Form childFrm in this.MdiChildren)
                {
                    //用子窗体的Name进行判断,如果已经存在则将他激活
                    if (childFrm.Name == childFrmName)
                    {
                        if (childFrm.WindowState == FormWindowState.Minimized)
                            childFrm.WindowState = FormWindowState.Maximized;
                        childFrm.Activate();
                        return true;
                    }
                }
                return false;
            }//////////////////调用///////////////////////////
                if (this.checkChildFrmExist("Menu1") == true)
                {
                    return;
                }
                Menu1 newFrm = new Menu1();
                newFrm.MdiParent = this;
                newFrm.WindowState = FormWindowState.Maximized;
                newFrm.Show();
      

  3.   

    很简单,在new一个新窗体的之前检查一下有没有打开同名的bool isFormExist=false;
    foreach (Form childFrm in this.MdiChildren) 

      if (childFrm.Name == childFrmName) 
      {      
         childFrm.Activate(); 
         isFormExist=true;
      } 

    if(!isFormExist)
    {
       Form1 newFrm = new Form1(); 
       newFrm.MdiParent = this;       
       newFrm.Show();
    }
      

  4.   

    最简单就是定义一个变量。。
    int number =0;
    在打开窗体的事件里面写
    if(number>0)
    {
       return;
    }
    子窗体名 frm = new 子窗体名();
    frm.ShowDialog();
    number++;