2009-03-05 39 views
7

我在我的一個孩子(模態)窗體中使用NotifyIcon控件,它工作正常。按預期播放氣球提示,處理鼠標事件等......當我期望它時,它不會消失。具體來說,當我退出子窗體並且父母重新控制時,該圖標仍然存在。它的工具提示是可訪問的,所以它非常「活」。如何保證NotifyIcon消失?

當我然後作爲一個整體退出我的應用程序時,圖像仍然保留,直到我將光標懸停在該點上。一旦被搗毀,它就會消失。

我怎樣才能讓它表現正常?確定通常是一個糟糕的詞:-0當創建它的表單消失時,我怎樣才能讓它消失?

有人可以解釋是什麼造成這種情況,我以爲.net應該自行清理?

編輯:如果我打電話的形式Dispose方法關閉這個evernt工作,但我真的必須這樣做? G

回答

5

這裏有一個想法,不知道這是否會有所作爲,但是當子窗體關閉時,是否在NotifyIcon上調用Dispose()?

編輯:剛纔看到你的編輯,是的,我並不感到驚訝,這有助於,是的,你應該這樣做。在封面之下,有些東西正在使用一些非託管資源,並且您需要釋放它。通常,您的應用程序中實現您正在使用的IDisposable的任何內容都會幫助您,並對其進行處理。

+0

哇,快回復:-)剛纔在我的編輯中提到過。是的,這有效,但我怎麼會用這些控制來做到這一點,但不是其他人? – 2009-03-05 15:59:02

5
Icon.Visible = false 

也可以工作。無論如何,仍然應該調用Dispose來處置Windows句柄。

1

This question與此類似。

如果您沒有清理系統托盤的新程序實例,而不是試圖保證清理任何類型的關閉,following模擬通知托盤清理。它使用一個SendMessage解決方案來模擬用戶鼠標移動清理,而不需要實際移動用戶的光標。

請注意,在Windows 7計算機上,名稱Notification Area應替換爲User Promoted Notification Area