无法访问已处置的对象。对象名称:'ToolStripDropDownMenu'

时间:2013-09-23 14:39:15

标签: .net vb.net winforms exception

我看到其他一些帖子讨论了同样的问题,但大多数都是使用多线程或定时器,但这不是这种情况。

我正在使用一个简单的VB.NET(.net 4.0)桌面应用程序,其MenuStrip包含标准File > Exit项。 File>的代码退出项目只是Me.Close()。通过鼠标或使用键盘快捷键(Alt + F, X)单击该项会引发以下异常:

{"Cannot access a disposed object. Object name: 'ToolStripDropDownMenu'."}

有趣的是,通过Alt + F4序列关闭同一个应用程序或窗口的关闭按钮可以顺利运行。

我检查了堆栈跟踪,似乎它正在尝试在应用程序关闭后创建该菜单项的句柄。非常感谢任何见解。

1 个答案:

答案 0 :(得分:1)

我发生了类似的事情,但不确定您是在关闭表单还是应用程序,所以这最初是作为评论开始的。我认为这在一定程度上取决于您是否在项目中Enable NET application framework进行了检查。如果你这样做,我认为Me.Close会工作,如果没有,Application.Exit需要(?)显式调用。

如果File->退出应关闭应用,请尝试使用Application.Exit。这听起来像关闭/销毁形式然后App退出代码尝试再次执行它。