在主线程中from1 调用from2 显示
在from1中button事件中
{
     this.Dispose();
     from2 myForm = new from2 ();
     from2 .ShowDialog();
}按理说from2在显示之前from1 本身已经不存在了 dispose了  
就不能new出来form2  form1 的作用内存空间已经释放 在这个内存空间中就不能new出来的form2 
但事实是还是能显示出form21!!!!
这是怎么回事???请高手解答! 是不是我对"释放"的理解有误????

解决方案 »

  1.   

    dispose是釋放了窗體相關聯的所有資源,但你的窗體本身還沒有關,
    所以繼續走下面的代碼。以前相關聯的資源是釋放了,但FORM2是新的,所以還是可以new出來的。
      

  2.   

    楼上的意思是说form1 还存在 dispose只是释放他相关的控件资源???
    就是说如果你在程序中new 很多form 都会存在  只道主线程关闭??????
    好想这么理解有点问题?!?!
    窗体的关闭 难道不是真正的关闭????
    你说"FORM2是新的"  这个新旧和自己没关系吧  主要他是在form1中生成的 (new出来的)我还是没太明白...........................
      

  3.   

    晓习 帮你顶
    是不是form1的内存没有释放?
      

  4.   

    form1是在application这个主线程中,如果你用Application.Exit()代替this.Dispose()。估计form2就出不来了。