【发布时间】:2013-11-04 17:12:28
【问题描述】:
可能我的问题与此重复 Multiple icons open in tray bar。在我的 winforms 应用程序中,一旦关闭表单,我就会在系统托盘中显示应用程序,即应用程序在关闭表单后不会退出,而是在单击应用程序系统托盘上的右键单击上下文菜单上的“关闭”时退出。
但是当我继续使用该应用程序时,我注意到系统托盘中有更多通知图标。但是一旦我将鼠标悬停在它们上面,它们就会消失,除了应用程序正在运行的那个。我已经尝试了所有方法来消除多个图标,但我无法这样做。
下面是我的代码 用于最小化到系统托盘
public void MinimizeToTray()
{
try
{
this.WindowState = FormWindowState.Minimized;
TrayIcon.Visible = true;
TrayIcon.ShowBalloonTip(1000);
ShowInTaskbar = false;
//this.Activate();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
在表单加载时我已添加此代码
private void LoadTrayMenu()
{
TrayMenu.Items.Add("Reminder");
TrayMenu.Items.Add("Close");
TrayMenu.Items[0].Click += new EventHandler(this.Reminder_Click);
TrayMenu.Items[1].Click += new System.EventHandler(this.Dispose_Click);
TrayIcon.ContextMenuStrip = TrayMenu;
}
dispose事件如下
private void Dispose_Click(object Sender, EventArgs e)
{
TrayIcon.Visible = false;
TrayIcon.Icon = null;
TrayIcon.Dispose();
this.Dispose();
}
在鼠标点击图标时,我编写了以下代码
private void TrayIcon_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
this.Show();
this.WindowState = FormWindowState.Normal;
TrayIcon.Visible = false;
//TrayIcon.Icon = null;
//TrayIcon.Dispose();
ShowInTaskbar = true;
}
}
我尝试清除通知图标,但即使这样也无济于事。 我是否错过了一些非常明显的东西。任何帮助将不胜感激。
【问题讨论】:
-
你解决了吗?请告诉我你是怎么做到的,因为我还做不到。谢谢。
标签: c# .net winforms notifyicon