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它,但是这样关闭我没有在我的项目中将它释放,如果我一直运行这样的打开关闭的操作,会不会越来越占用电脑内存,然后使程序运行变慢?
展开
 我来答
幸巴达
推荐于2016-12-04 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2386万
展开全部
每次new没有问题,不会占用太多内存,因为函数执行完 窗体对象就进入gc了。

之前的错误是因为窗体关闭后,对象虽然还在,但是窗体资源已经被释放了,再次show的时候就会抛出异常。
也可以这样解决:响应FrmEditAdmin的Close事件,不要真正关闭窗口(好像是e.Cancel=true),而是调用hide隐藏(this.Hide())。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式