【发布时间】:2012-06-11 12:22:30
【问题描述】:
我有一个只能从系统托盘运行的应用程序,它的唯一目的是通过 Ballon Tips 向用户提供信息。
除了一点小烦恼之外,它运行良好。当应用程序使用任务管理器(而不是使用上下文菜单)关闭时,图标会停留在系统托盘中,直到您将鼠标悬停在它上面,然后当另一个实例打开时,您会在第一个实例旁边看到第二个图标。
我的 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 下关闭,因为显然这是应该发生的,但我希望有人有解决方案。
我正在考虑在应用程序打开时清理系统托盘?
谢谢
【问题讨论】:
-
这是预期行为 - 它会影响 每个 将图标放入系统托盘的程序,而不仅仅是您的。并且没有与通知区域交互的 API。
-
我也很害怕,我刚刚经历了一个“我知道,其中一位天才”在堆栈溢出时会发现这一点的时刻
-
找到一篇回答了我的问题的博文 - tinyurl.com/notificationarea
-
为什么要使用任务管理器关闭应用程序?当您终止应用程序时,赌注将被取消,不会发生任何清理。
-
我不会通过任务管理器关闭应用程序,也不会建议其他人这样做。但是,人们无论如何都会这样做,并且会留下这些图标。是的,这对关闭应用程序没有帮助,但在打开应用程序时效果很好。
标签: .net notifyicon