本测试程序有两个窗体,分别是form1跟form2。f1上有个按钮单击事件如下:
if(form2 != null){
      MessageBox.Show("窗体已存在! ");
      return;
}
form2 = new form2();  //form2 是form1的成员变量
form2.show();
当我第一次单击按钮的时候窗体2显示出来 
此时然后我把窗体2关闭掉,再单击窗体1的按钮时  此时form2 确不是null? 
为什么第一次没执行 form2 = new form2();时 form2是null。赋值一次后就变了。
求大侠讲解窗体释放关闭

解决方案 »

  1.   

    你虽然关闭了form2,但是form2对象还是在的,只不过没show出来而已
      

  2.   

                if (form2 == null)
                {
                    form2 = new Form2();
                    form2.BringToFront();
                    form2.Show();
                }
                else
                {
                    if (form2.IsDisposed)
                    {
                        form2 = new Form2();
                    }
                    form2.BringToFront();
                    form2.Show();
                }
      

  3.   

    if(form2!=null) 需要改成
    if(form2!=null&&!form2.IsDisponsed)
    目测是这个原因,手写不知道有没有写错那个单词。