1. ホーム
  2. c#

[解決済み] NotifyIconはアプリケーションを閉じてもトレイに残っているが、マウスを乗せると消えてしまう。

2023-06-22 09:19:12

質問

SOには、同じ疑問を持つ質問が多くあります。 これに対する解決策は

notifyIcon.icon = null を設定し Dispose を呼び出します。

私のアプリケーションでは、そのようなフォームはありませんが、イベント時に更新されるNotificationアイコンがあります。 作成時に、フォームを非表示にして ShowInTaskbar プロパティに false . したがって、私は"FormClosing"または"FormClosed"イベントを持つことができません。

アプリケーションが終了するイベントを取得すると Process.GetCurrentProcess().Kill(); を呼び出して終了します。

を追加しました。 notifyIcon.icon = null を追加し、Dispose before killing も追加しましたが、マウスを乗せるまでアイコンはタスクバーのままです。

EDIT : この動作が GetCurrentProcess().Kill() を呼び出したためだと仮定すると、すべてのリソースをクリアし、システムトレイからアイコンを削除する、アプリケーションを終了するエレガントな方法はありますか。

どのように解決するのですか?

私の場合、唯一の解決策は、Closed イベントを使用して、アイコンを非表示にして破棄することでした。

icon.BalloonTipClosed += (sender, e) => { 
                                            var thisIcon = (NotifyIcon)sender;
                                            thisIcon.Visible = false;
                                            thisIcon.Dispose(); 
                                        };