在一个窗口的按钮里打开另一个窗口
代码:Form2 frm=new Form2();
      frm.show();
但每次按那个按钮都多打开一个窗口,其实只想显示上一次打开的窗口。
请问应该怎么做?还有怎样可以知道Form2已经打开了?谢谢

解决方案 »

  1.   

    Form2 frm设为打开它的类的一个属性,然后在按钮单击事件中写
    if(frm!=null)
    {
    frm.focus();
    }
    else
    {
    frm.Show();
    }
      

  2.   

    最简单的办法:frm.ShowDialog()
    这不行,我还要操作其它的窗口
      

  3.   


    在类上面定义Form2 form2;在button的事件里面if(form2==null)
    {
       form2= new Form2();
       form2.Show();
    }
      

  4.   

    Form2 frm设为打开它的类的一个属性,然后在按钮单击事件中写
    if(frm!=null)
    {
    frm.focus();
    }
    else
    {
    frm.Show();   //这句在第一次运行时没执行啊,只执行了上一句,而且窗口打开后,frm.focus();}
      

  5.   

    在类上面定义Form2 form2;在button的事件里面if(form2==null)
    {
       form2= new Form2();
       form2.Show();
    }那如果是MDI主窗口调用子窗口,是不是一个子窗口就要定义一个变量了?
      

  6.   

    所谓的singleton的设计模式的实现,呵呵可以这样做设计,把类的构造函数私有化
    定义一个本类的实例A,做为数据成员
    然后写一个静态方法,如果A存在,就返回A,如果A不存在,则实例化A就可以实现楼主要的功能了
      

  7.   

    Form2 frm=new Form2();
    frm.ShowDialog()这二句就够了.
      

  8.   

    在类上面定义Form2 form2;在button的事件里面if(form2==null)
    {
       form2= new Form2();
       form2.Show();
    }
    else
    {
       form2.Focus();
       Form2.show();    //出错
    }如果用上面的方法,则打开了Form2,然后关闭,再重新打开,出现
    “无法访问已释放的对象。对象名:“Form2””的错误提示。