
C#中,点击窗体的右上角的红叉关闭窗体了,再次打开提示未释放的原因
这个问题已经解决,原因是我每次在打开这个窗体不是重新new了一个这个窗体的对象,而是直接调用fea.MdiParent=this;fea.Show();当我将这里改成Fr...
这个问题已经解决,原因是我每次在打开这个窗体不是重新new了一个这个窗体的对象,而是直接调用fea.MdiParent = this;
fea.Show();
当我将这里改成
FrmEditAdmin fea = new FrmEditAdmin();//
fea.MdiParent = this;
fea.Show();
时问题解决!
现在我的想法是,我再主窗体中设置MDI,然后通过某一个控件可以每点击一次就打开另一个窗体(作为主窗体的子窗体),每个子窗体我可以通过它右上角红色的叉关闭
问题:其实我每次打开都是通过
FrmEditAdmin fea = new FrmEditAdmin();//
fea.MdiParent = this;
fea.Show();
这个方法来打开,也就是说每次都是从事new了一个子窗体的对象,然后show它,但是这样关闭我没有在我的项目中将它释放,如果我一直运行这样的打开关闭的操作,会不会越来越占用电脑内存,然后使程序运行变慢? 展开
fea.Show();
当我将这里改成
FrmEditAdmin fea = new FrmEditAdmin();//
fea.MdiParent = this;
fea.Show();
时问题解决!
现在我的想法是,我再主窗体中设置MDI,然后通过某一个控件可以每点击一次就打开另一个窗体(作为主窗体的子窗体),每个子窗体我可以通过它右上角红色的叉关闭
问题:其实我每次打开都是通过
FrmEditAdmin fea = new FrmEditAdmin();//
fea.MdiParent = this;
fea.Show();
这个方法来打开,也就是说每次都是从事new了一个子窗体的对象,然后show它,但是这样关闭我没有在我的项目中将它释放,如果我一直运行这样的打开关闭的操作,会不会越来越占用电脑内存,然后使程序运行变慢? 展开
1个回答
展开全部
每次new没有问题,不会占用太多内存,因为函数执行完 窗体对象就进入gc了。
之前的错误是因为窗体关闭后,对象虽然还在,但是窗体资源已经被释放了,再次show的时候就会抛出异常。
也可以这样解决:响应FrmEditAdmin的Close事件,不要真正关闭窗口(好像是e.Cancel=true),而是调用hide隐藏(this.Hide())。
之前的错误是因为窗体关闭后,对象虽然还在,但是窗体资源已经被释放了,再次show的时候就会抛出异常。
也可以这样解决:响应FrmEditAdmin的Close事件,不要真正关闭窗口(好像是e.Cancel=true),而是调用hide隐藏(this.Hide())。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询