2012-06-11 9 views
5

システムトレイからのみ実行されるアプリケーションがあります。唯一の目的は、ユーザーにBallon Tips経由で情報を提供することです。通知アイコンは、アプリケーショントレイのシステムトレイに残ります。

些細なことを除いて、うまくいきます。タスクマネージャを使用してアプリケーションを閉じると(コンテキストメニューを使用するのとは対照的に)、システムトレイにアイコンが表示され、その上にマウスカーソルが移動すると、別のインスタンスが開いたときに最初のアイコンが表示されます。どうやら、これが起こることになっているものですが、私はその誰かを期待していた、と

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と​​でMicrosoftによって閉鎖されています

マイフォームClosedイベントは次のようになり、それは何もしません解決策がありました。

私はアプリケーションのシステムトレイを清掃する行に沿って何か考えていたオープン?

おかげで私にとっては

+4

これは、あなたのものだけでなく、システムトレイにアイコンを配置するすべての*プログラムに影響を与えます。また、通知領域と対話するAPIはありません。 –

+0

私は多くを恐れ、私はちょうどそれらの1つを持っていた "私は知っている、スタックオーバーフローの天才の1つは、この1つを考え出したでしょう" – JMK

+0

私の質問に答えたブログ記事を見つけた - http://tinyurl.com/ notificationarea – JMK

答えて

1

設定nullIconNotifyIconを配置した後Application.DoEvents()を呼び出すときに、それが動作します。

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