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

Joh*_*ohn 1 c# trayicon taskbar

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

但是,申请结束后.图标继续保持不变,直到我手动将鼠标悬停在它上面.

在运行新实例时,如何防止它延迟或清除所有旧的?

wal*_*rlv 5

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

但我发现,你可以DisposeNotifyIcon,当你关闭你的应用程序.Dispose可以从任务栏的托盘区域中删除您的图标.

我猜你可能意外退出了你的程序,这将导致你的问题.您应该检查是否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();
    }
}
Run Code Online (Sandbox Code Playgroud)