2015-05-19 26 views
0

我正在使用vb.net 2013,並且已將關閉模式配置爲「最後一個窗體關閉時」。使用運行時創建的對象時,應用程序無法退出

在我的主要形式,我有有這個代碼以關閉應用程序的菜單項:

Application.Exit 

一切工作正常,除了一種情況:

當我打開一個特定的形式,在運行時創建Combobox,並且我使用Addhandler訂閱了幾個事件。

按下按鈕時會創建combobox

當我打開此表單並且我沒有創建combobox時,一切正常。如果combobox被創建,當我關閉這個表單並嘗試使用菜單項關閉應用程序時,什麼都不會發生。應用程序未關閉,並且不顯示錯誤消息。

MyCombobox.dispose() 

在窗體(其中我有combobox)關閉事件,我試圖把代碼行(當我嘗試用「X」按鈕來關閉的主要形式發生了同樣的情況)

但情況是一樣的。

我該怎麼辦?謝謝!

回答

0

我從我的經驗很少做的是

1)從其父控制刪除MyCombobox(我認爲這是在你的組合框關閉事件)。 2.)將MyCombobox設置爲Nothing
3.)處理()它。

MyCombobox = Nothing 
MyCombobox.Dispose() 

查看關閉事件的代碼的一些部分對我們可以幫助您進行檢查會很有用。給你更多的力量!基於OP的評論

更新: 我已閱讀從MSDN以下:

的Form.Closed和Form.Closing事件不會引發:https://msdn.microsoft.com/en-us/library/system.windows.forms.form.closing(v=vs.110).aspx

由此看來,一定要注意這一點很重要當調用Application.Exit方法來退出應用程序時。如果您在必須執行的任一事件中都有驗證代碼,則應在調用Exit方法之前分別調用每個打開窗體的Form.Close方法。

+0

我已經完成了所有這些,但沒有工作。密切事件中我沒有特殊的代碼。只有這些行爲組合框。 – alex

+0

抱歉,我們正在討論不同的形式。主窗體具有調用application.exit的菜單項。具有組合框的表單是另一種與任何其他表單關閉的表單,並且關閉和關閉事件正常提升。在此表單關閉後,我使用menuitem關閉應用程序。但在這一點上,我有我描述的問題。 – alex

+0

嗨,我想我稍微得到的圖片,但你可以給一個片段用於menuitem的子?我會嘗試模擬這種情況,並希望能有更有用的解決方案:) – Rezard

相關問題