C#无法访问已释放的对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#无法访问已释放的对象相关的知识,希望对你有一定的参考价值。

新建一个窗口,打开关闭都没问题,再次打开就出现如图的提示,请问怎么回事?
1、新手,很多不懂的请详细解答一下,解决方法。
2、我是一个设置按钮,点开弹出一个窗口,设置完成,关闭后再次打开就成这样了。
3、我要是把f4.Controls.Add()注释掉了就不会出现这种问题。
System.ObjectDisposedException:“无法访问已释放的对象。”

    这个说明窗口资源已经释放了

    重新打开窗口,可以重新new一个新的,打开窗口

    如果要保留这个窗口,可以不用关闭,关闭操作变成隐藏,在打开时再show

    异常信息可以定位到具体哪一行代码出现问题了,点击异常详细信息,有异常堆栈


参考技术A 不要对同一个流get两次。。
如果需要读取两次的话 先读取到memoryStream中再做第二次处理。

c# winform 无法访问已释放的对象。 对象名:“System.ServiceModel.Channels.ServiceChannel”。

参考技术A 你跟下你的程序,是不是在某个地方做了释放操作。trycatch(Exception ex)throw ex;,打着断点一步步的跟 参考技术B 如果想在构造函数中判断是否符合条件的话,最好再写一个函数,加一个判断语句 参考技术C 。。你释放掉了当然无法访问了、
就像GDI中一些图片问题,比如你开始用到A图,当想切换到B图时,就得先释放掉A图,也就是不再占用A图时,这样程序就能切换到B图,实现图片切换。

以上是关于C#无法访问已释放的对象的主要内容,如果未能解决你的问题,请参考以下文章

C#无法访问已释放的对象

c# topmost模式窗口关闭后,有“无法访问已释放的对象”错误

c# winform 无法访问已释放的对象。 对象名:“System.ServiceModel.Channels.ServiceChannel”。

无法访问已释放的对象,该怎么解决

C#Winform打印预览无法访问已释放的对象。

无法访问已释放的对象。\r\n对象名称: 'ApplicationUserManager'