我看到其他一些帖子讨论了同样的问题,但大多数都是使用多线程或定时器,但这不是这种情况。
我正在使用一个简单的VB.NET(.net 4.0)桌面应用程序,其MenuStrip
包含标准File > Exit
项。 File>的代码退出项目只是Me.Close()
。通过鼠标或使用键盘快捷键(Alt + F, X
)单击该项会引发以下异常:
{"Cannot access a disposed object. Object name: 'ToolStripDropDownMenu'."}
有趣的是,通过Alt + F4
序列关闭同一个应用程序或窗口的关闭按钮可以顺利运行。
我检查了堆栈跟踪,似乎它正在尝试在应用程序关闭后创建该菜单项的句柄。非常感谢任何见解。
答案 0 :(得分:1)
我发生了类似的事情,但不确定您是在关闭表单还是应用程序,所以这最初是作为评论开始的。我认为这在一定程度上取决于您是否在项目中Enable NET application framework
进行了检查。如果你这样做,我认为Me.Close会工作,如果没有,Application.Exit需要(?)显式调用。
如果File->退出应关闭应用,请尝试使用Application.Exit
。这听起来像关闭/销毁形式然后App退出代码尝试再次执行它。