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