2012-06-11 82 views
5

我有一個應用程序只能從系統托盤運行,它的唯一目的是通過Ballon提示向用戶提供信息。通知圖標在系統托盤上保留在應用程序關閉

它運行良好,除了一個小小的煩惱。當使用任務管理器關閉應用程序(而不是使用上下文菜單)時,該圖標將粘在系統托盤中,直到您將鼠標懸停在其上,然後當另一個實例打開時,您會看到第二個圖標位於第一個圖標旁邊。

我形成閉合事件看起來是這樣的,它什麼都不做:

private void frmMain_FormClosed(object sender, FormClosedEventArgs e) 
{ 
    ntfyIcon.Visible = false; 
    ntfyIcon.Icon = null; 
    ntfyIcon.Visible = false; 
    ntfyIcon.Dispose(); 
} 

has been reported on Microsoft Connect,並已通過微軟​​下關閉的,很顯然,這是應該發生的,但我希望有人有一個解決方案。

我在想清楚應用程序打開時清理系統托盤的問題。

感謝

+4

它的預期行爲 - 它會影響*系統托盤中的所有*圖標,而不僅僅是您的圖標。並且沒有API與通知區域進行交互。 –

+0

我很擔心,我只是有一個「我知道,堆棧溢出的天才之一將會計算出這一個」時刻 – JMK

+0

找到一篇博客文章,回答我的問題 - http://tinyurl.com/ notificationarea – JMK

回答

1

對於我來說,它的設置後調用Application.DoEvents()Iconnull和處理的NotifyIcon工作。

private void frmMain_FormClosed(object sender, FormClosedEventArgs e) 
{ 
    ntfyIcon.Icon = null; 
    ntfyIcon.Dispose(); 
    System.Windows.Forms.Application.DoEvents(); 
} 
相關問題