2012-06-11 50 views
5

我有一个应用程序只能从系统托盘运行,它的唯一目的是通过Ballon提示向用户提供信息。通知图标在系统托盘上保留在应用程序关闭

它运行良好,除了一个小小的烦恼。当使用任务管理器关闭应用程序(而不是使用上下文菜单)时,该图标将粘在系统托盘中,直到您将鼠标悬停在其上,然后当另一个实例打开时,您会看到第二个图标位于第一个图标旁边。

我形成闭合事件看起来是这样的,它什么都不做:

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,并已通过微软​​下关闭的,很显然,这是应该发生的,但我希望有人有一个解决方案。

我在想清楚应用程序打开时清理系统托盘的问题。

感谢

+4

它的预期行为 - 它会影响*系统托盘中的所有*图标,而不仅仅是您的图标。并且没有API与通知区域进行交互。 –

+0

我很担心,我只是有一个“我知道,堆栈溢出的天才之一将会计算出这一个”时刻 – JMK

+0

找到一篇博客文章,回答我的问题 - http://tinyurl.com/ notificationarea – JMK

回答

1

对于我来说,它的设置后调用Application.DoEvents()Iconnull和处理的NotifyIcon工作。

private void frmMain_FormClosed(object sender, FormClosedEventArgs e) 
{ 
    ntfyIcon.Icon = null; 
    ntfyIcon.Dispose(); 
    System.Windows.Forms.Application.DoEvents(); 
} 
相关问题