SO上有很多问题提出同样的疑问。解决方案是设置
notifyIcon.icon = null
Dispose
并在 FormClosing 事件中调用它。
在我的应用程序中,没有这样的表单,但有更新事件的通知图标。在创建时,我隐藏我的表单并创建ShowInTaskbar
property false
。因此我不能有“FormClosing”或“FormClosed”事件。
如果此应用程序获得退出事件,它会调用Process.GetCurrentProcess().Kill();
退出。
我notifyIcon.icon = null
在杀死之前添加了和 Dispose ,但图标仍然保留在任务栏上,直到我将鼠标悬停在它上面。
编辑:如果我认为这种行为是由于调用GetCurrentProcess().Kill()
,是否有任何优雅的方法可以退出应用程序,这将清除所有资源并从系统托盘中删除图标。