Є багато запитань щодо SO, що ставлять однакові сумніви. Рішення для цього - встановити
notifyIcon.icon = null
і закликаючи Dispose
це до події FormClosing.
У моїй заявці такої форми немає, але є піктограма сповіщення, яка оновлюється щодо подій. Під час створення я приховую свою форму і роблю ShowInTaskbar
власність false
. Отже, я не можу мати події "FormClosing" або "FormClosed".
Якщо ця програма отримує подію для виходу, вона викликає Process.GetCurrentProcess().Kill();
вихід.
Я додав notifyIcon.icon = null
, а також Dispose перед вбивством, але піктограма все ще залишається на панелі завдань, доки я не наведу на неї мишу.
РЕДАГУВАТИ : Якщо я припускаю, що така поведінка зумовлена викликом GetCurrentProcess().Kill()
, чи є якийсь елегантний спосіб вийти з програми, який очистить всі ресурси та видалить піктограму з системного трея.