应用程序关闭时,通知图标停留在系统托盘中

时间:2012-06-11 12:22:31

标签: .net notifyicon

我有一个只能从系统托盘运行的应用程序,它的唯一目的是通过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下关闭,显然,这应该是应该发生的事情,但我希望有人有解决方案。

我正在考虑在应用程序打开时清理系统托盘的方法吗?

由于

1 个答案:

答案 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();
}