Form a = new Form1();
            a.Show();
如何判断新窗口已打开,已防止再次打开?

解决方案 »

  1.   

    为防止窗口被多次打开,为了防止一个类被多次实例化,用单例模式private static Form1 s_form1;public static ShowForm()
    {
     if(s_form1 == null)
     {
       s_form1 = new Form1();
       s_form1.Show();
     }
     else
     {
       s_form1.Show();
     }
    }外部需要这个form的时候调用Form1.ShowForm()
      

  2.   

    program那里开程序之间先get一次自己程序的名字,或者窗口标题就行了
      

  3.   

    这样你可以在From1里面定义一个静态变量,在构造函数里面(判断该静态变量来确认是否已经打开.)
    也可以参考,设计模式里面的.singleton 模式来设置.
      

  4.   


    那我把新窗口打开后关闭,再次打开,就会报错。s_form1.Show(); 
      

  5.   

    如果你的FORM是已经打开的了,你就可以用
    if(this.view.Cantainkey("FORMName"))
    {
      NOSHOW();
    }
    else
    {
    this.show();
    }
    这样应该是可以的吧
      

  6.   

    private bool checkChildFrmExist(string childFrmName)
            {
                foreach (Form childFrm in this.MdiChildren)
                {
                    //用子窗体的Name进行判断,如果已经存在则将他激活
                    if (childFrm.Name == childFrmName)
                    {
                        if (childFrm.WindowState == FormWindowState.Minimized)
                            childFrm.WindowState = FormWindowState.Normal;
                        childFrm.Activate();
                        return true;
                    }
                }
                return false;
            }