首页 新闻 搜索 专区 学院

无法访问已释放对象

0
悬赏园豆:5 [已关闭问题]

我有几个子窗体,它们通过Tab页的形式停靠在父窗体中。当我关闭某个子窗体后,如果再次打开相同的子窗体的话,就会出现无法访问已释放的对象的错误,请问各位这是怎么回事啊,大家在以前有没有碰到类似的问题~

问题补充: 我再次打开子窗体时,已经事先创建了。。 当我调用子窗体的Show()方法时,就出现了我所描述的错误。出现这种错误跟framework的版本有关系吗? 我的.net framework 是2.0 SP1
eastcowboy的主页 eastcowboy | 初学一级 | 园豆:185
提问于:2008-09-24 15:21
< >
分享
其他回答(2)
0

对象已经释放了,你程序代码又去访问它,就提示这个错误了,你看看你的打开代码,还有你的framework是2.0 SP1的吗?

zjy | 园豆:3194 (老鸟四级) | 2008-09-24 15:28
0

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

陛下 | 园豆:3938 (老鸟四级) | 2008-09-24 20:13
1

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

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

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

JC_C' | 园豆:205 (菜鸟二级) | 2011-03-23 11:17

dockpanel点×关闭后是释放吗?我想让它点x关闭后,通过其他按钮让它再次显示该怎么办呢?我试过了修改可见性,但是不起作用。不知道您了解weifenLuo的dockpanel吗

支持(0) 反对(0) marvelousone | 园豆:200 (初学一级) | 2017-12-21 18:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册