close方法在释放资源后还可以继续使用,并没有在内存中删除,但是dispose方法会从内存中删除该资源,而你就不能再使用它!例如:你有两个窗体Form1和Form2,你在第一个窗体中用Form2 XXX=new Form2然后你调用close方法,这时资源还在,你仍可以用XXX.show()方法使用Form2,但是如果你用的是dispose方法,那么该资源就不存在了,如果这时你调用XXX.show()方法的话,就会出错!
Close是关闭窗口句柄
Dispose是关闭窗口句柄以后同时释放内存
比如你在一个代码里面
Form form = new Form();
form.ShowDialog();
然后你在form的代码中用this.Close()
窗口关闭后,回到这个代码中,还是可以继续操作form的,因为对象还在
但是如果是Dispose回来,就不能操作form了,因为内存被释放了
Close是关闭窗口句柄
Dispose是关闭窗口句柄以后同时释放内存
this.Close();
this. dispose ();
不可以颠倒顺序
你这样测试一下就知道了
form1是一个存在的窗体,从其mdi父窗口中写这样的代码
form1.close();
form1.show();
你试试,是可以的
但是如果
form1.dispose();
form1.show();
试试,会提示没有该对象的。