我有一个只能从系统托盘运行的应用程序,它的唯一目的是通过Ballon Tips向用户提供信息。
除了一个小麻烦之外,它运行良好。当使用任务管理器关闭应用程序(而不是使用上下文菜单)时,图标会在系统托盘中移动,直到您将鼠标悬停在它上面,然后当另一个实例打开时,您会在第一个实例旁边找到第二个图标。 / p>
My Form Closed事件看起来像这样,它什么都不做:
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已被微软在Won't Fix
下关闭,显然,这应该是应该发生的事情,但我希望有人有解决方案。
我正在考虑在应用程序打开时清理系统托盘的方法吗?
由于
答案 0 :(得分:1)
对我来说,在设置Application.DoEvents()
到Icon
之后调用null
并处置NotifyIcon
时,它会有效。
private void frmMain_FormClosed(object sender, FormClosedEventArgs e)
{
ntfyIcon.Icon = null;
ntfyIcon.Dispose();
System.Windows.Forms.Application.DoEvents();
}