C#清除已关闭应用程序的托盘图标

标签 c# taskbar trayicon

我使用 System.Windows.Forms.NotifyIcon 创建托盘图标

但是,应用程序关闭后。该图标会一直存在,直到我手动将鼠标悬停在它上面。

如何在运行新实例时防止它挥之不去或清除所有旧实例?

最佳答案

我没有重现您的问题,我在 Windows 10 Creators Update 上运行。

但我发现您可以在关闭应用程序时Dispose 您的NotifyIconDispose 可以将您的图标从任务栏的托盘区域中移除。

我猜你可能意外退出了你的程序,这将导致你的问题。您应该检查是否调用了 System.Exit() 或其他不安全的退出方法。

你可以看下面的代码来了解如何调用Dispose:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    protected override void OnClosed(EventArgs e)
    {
        base.OnClosed(e);
        // Call Dispose to remove the icon out of notification area of Taskbar.
        notifyIcon1.Dispose();
    }
}

关于C#清除已关闭应用程序的托盘图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46763247/

相关文章:

javascript - 如何在 Google Chrome 上打开一个新的弹出窗口,该窗口可以适应任何屏幕,而无需越过 Windows 任务栏?

python - wxPython 和 windows 7 任务栏

java - Windows 上的 PNG TrayIcon 透明度

Delphi - 如何找到重复出现的 "ghost"托盘气球弹出窗口的来源?

c# - 需要帮助从 SQL Server CE 数据库获取数据

c# - 我的 O/R Designer 一直在删除 designer.cs 文件!

c++ - 任务栏上的 GLFW 加载状态

Java Applet 退出并且托盘图标在一段时间后消失,是否有超时设置?

c# - 任务运行器资源管理器不工作

c# - 引用库中的 ASP.NET 相对路径