也许我的问题是这个问题的重复:多个图标在托盘中打开。 在我的winforms应用程序中,当窗体关闭时,我会在系统托盘中显示该应用程序,即关闭窗体后应用程序不会退出,但在单击应用程序右键单击上下文菜单中的“关闭”时退出系统托盘。
“dispose”事件如下所示。
当我点击图标时,我编写了以下代码。
我尝试清除通知图标,但这也没有帮助我。我是否忽略了一些非常显而易见的东西?任何帮助将不胜感激。
但是,在使用应用程序时,我注意到有更多的通知图标在系统托盘中。 但是,一旦我将鼠标悬停在它们上面,它们就都消失了,除了正在运行的应用程序之外的那个。 我已经尝试了每种方法来消除多个图标,但是我无法做到。
以下是我的代码:用于最小化到系统托盘
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;
}
}
我尝试清除通知图标,但这也没有帮助我。我是否忽略了一些非常显而易见的东西?任何帮助将不胜感激。