为了账号安全,请及时绑定邮箱和手机立即绑定

无法访问已释放对象

无法访问已释放对象

C#
胡说叔叔 2018-12-25 18:09:27
我有几个子窗体,它们通过Tab页的形式停靠在父窗体中。当我关闭某个子窗体后,如果再次打开相同的子窗体的话,就会出现无法访问已释放的对象的错误,请问各位这是怎么回事啊,大家在以前有没有碰到类似的问题~.NET技术C#问题补充: 我再次打开子窗体时,已经事先创建了。。 当我调用子窗体的Show()方法时,就出现了我所描述的错误。出现这种错误跟framework的版本有关系吗? 我的.net framework 是2.0 SP1
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

WinForm 上的 Tab 控件?不知道你的“关闭”与“再次打开”是如何定义的。如果“打开”是完全新建的窗体(重先加载上次关闭时的配置数据),按理是不应该出现这样的情形。你说“相同的子窗体”,是不是你关闭 tab (或子窗体)时,释放了该子窗体,而在再次打开时,没有重先创建,而是直接引用?没能看到代码,大概猜测是盲目的。

查看完整回答
反对 回复 2018-12-29
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

当关闭窗体时窗体已经不存在了
(对象已经释放),但是你show的时候,因为是static 的,所以对象还在,如此一来便冲突了。

在关闭此窗体的时候将它赋值为null就OK,和版本没关系,要对症下药。嗯哼、

 private void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            f2 = null;
        }


查看完整回答
反对 回复 2018-12-29
  • 2 回答
  • 0 关注
  • 602 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信