使用运行时创建的对象时,应用程序无法退出

时间:2015-05-19 03:01:59

标签: vb.net

我正在使用vb.net 2013,我已将关机模式配置为“当最后一个表单关闭时”。

在我的主表单上,我有一个菜单项,其中包含此代码以关闭应用程序:

Application.Exit

一切正常,除了一个案例:

当我打开特定表单时,在运行时创建Combobox并且我使用Addhandler订阅了多个事件。

按下按钮时会创建combobox

当我打开此表单并且我没有创建combobox时,一切正常。如果创建了combobox,当我关闭此表单并尝试使用菜单项关闭应用程序时,没有任何反应。应用程序未关闭,并且不显示任何错误消息。 (当我尝试用“x”按钮关闭主窗体时会出现同样的情况)

在表单(我有combobox)关闭事件的地方,我试图输入一行代码:

MyCombobox.dispose()

但情况是一样的。

我该怎么办?谢谢!

1 个答案:

答案 0 :(得分:0)

我从小经验中所做的是

1。)从其父控件中删除MyCombobox(我认为这是在你的组合框关闭事件中)。 2.)将MyCombobox设置为Nothing 3.)Dispose()它。

MyCombobox = Nothing 
MyCombobox.Dispose()

查看close事件代码的某些部分会很有用,这样我们就可以帮助您检查。给你更大的力量!

根据OP的评论进行更新: 我从MSDN上阅读了以下内容:https://msdn.microsoft.com/en-us/library/system.windows.forms.form.closing(v=vs.110).aspx

由此,重要的是要注意:

调用Application.Exit方法退出应用程序时,不会引发Form.Closed和Form.Closing事件。如果在必须执行的这些事件中都有验证代码,则应在调用Exit方法之前单独为每个打开的表单调用Form.Close方法。