在FORM1父窗体中点击BUTTON按钮,显示FORM2子窗体中,但是每次点击BUTTON我都想显示FORM2子窗体前把以前的FORM2子窗体关闭 
FORM1中 设置IsMdicontainer属性为TRUE,BUTTON的CLICK事件: 
  Form2 f2=new Form2(); 
  f2.MdiParent=this; 
  f2.show(); 
这样显示的FORM2窗体N多,我就想每次点击都显示一个怎么办啊?? 

解决方案 »

  1.   

    你可以在你的Form2中添加一个静态变量 bool flag=false;  这个变量的作用是标示你窗体是否是打开状态在form2的load事件中这样写
    flag=true;
    在form2的closing事件中这样写
    falg=false;你上面button的click事件中这样写
    Form2 f2=new Form2(); 
      f2.MdiParent=this; 
    if(f2.flag)
    {
      return;
    }else
    {
      f2.show();
    }
      

  2.   

    发重了:在Form1的定义中加入 
    Form2 f2=null; 
    然后在Button的Click事件中,关闭前面已经打开的: 
    if(f2!=null) 
      f2.Close(); 
    接下来再创建新的。
      

  3.   

    用一个标识变量来标示有没有form2实例被创建
      

  4.   

    Form2 f2=new Form2(); 
      f2.MdiParent=this; 
      f2.ShowDialog(); 
    改为ShowDialog就行
      

  5.   

    foreach(Form f in this.MdiChildren)
    {
      if(f is Form2) return;
    }
    Form2 s = new Form2();
    ....