为什么窗体关闭之后还可以访问?
有这样两个窗体:
class Form1()
{
}
class Form2()
{
public string name;
}
其中窗体1中有一个按钮,给按钮注册如下事件:
Form2 frm=new Form2();
if(frm.ShowDialog() == DialogResult.OK)
{
MessageBox.Show(frm.name);
}
问题来了,当给frm的DialogResult赋值为DialogResult.OK后,frm自动关闭,但是既然还可以访问到这个frm,这是什么原因?
我开始以为是因为这个窗口并没有关闭,只是隐藏起来了,可是当我通过close或者dispose来关闭这个frm时(这时只要把if判断语句改成frm.ShowDialog() == DialogResult.Cancel)就行了),仍然可以访问到这个frm,这是什么原因?
[解决办法]
本来就可以嘛。Close或Dispose掉,又没有给这个frm设为null,当然是可以访问的。
[解决办法]
楼上说的有道理,frm这个对象在内存中始终存在,除非置空
[解决办法]
不是真正意义上的关闭
[解决办法]
Form2 frm=new Form2();
你这句话已经声明了frm这个对象了,后面的什么事件方法多是操作frm里面的内容的
只要你没把frm赋值为null,就一定能访问的啊!
[解决办法]
只是界面上看不到了而已。
我以前就在窗体关闭后写一些处理代码,把任务管理器中没关闭的该程序进程都杀掉。
[解决办法]
有道理啊