2010-01-21 137 views
1

我有一個小窗體應用程序,它由一個窗體和一個系統托盤圖標組成。在Windows窗體中正確使用IsDisposed

當用戶從系統托盤關閉應用程序時,我得到ObjectDisposedException,因爲一些控件(任務圖標)仍然嘗試訪問主窗口窗體。

我試過在if(!this.IsDisposed)包裝器中包裝訪問系統托盤的代碼,但是對此的檢查總是被繞過。

我是否錯過了我應該在這裏做的事情?這似乎相當微不足道。

謝謝。

+1

你能爲我們展示一些代碼嗎?我們可以爲你解答這個問題嗎? – t0mm13b 2010-01-22 00:00:11

+0

'this'是指系統托盤控件還是表單?乍一看,好像你正在檢查錯誤控制器上的「IsDisposed」。 – Jay 2010-01-22 00:33:31

回答

1

您可以控制用戶關閉應用程序時發生的情況。按照正確的順序關閉事件(基於哪些表單/控件引用其他表單/控件),並且可以避免此問題,而不會破壞IsDisposed檢查。

+0

感謝您的建議,我再看看我的代碼,發現我能夠解決這個防禦,並在我到達該狀態之前適當地清理所有控件。 – 2010-01-22 13:20:19