【问题标题】:NotifyIcon does not display, even after visible=true [duplicate]NotifyIcon 不显示,即使在 visible=true [重复]
【发布时间】:2016-05-04 16:29:53
【问题描述】:

这个问题与其他问题不同,因为我已经尝试过他们的解决方案:

  • visible=true;
  • 气球提示也不显示;
  • 而且它不在系统托盘的“扩展图标”部分(或任何所谓的隐藏图标所在的位置)。

代码,取自 SO 和其他地方的许多不同答案(他们都说相同):

    private void mainform_Resize(object sender, EventArgs e)
    {
        if (FormWindowState.Minimized == this.WindowState)
        {
            notifyIcon.Visible = true;
            notifyIcon.ShowBalloonTip(500, "test title", "test message", ToolTipIcon.Info);
            this.Hide();
        }
        else if (FormWindowState.Normal == this.WindowState)
        {
            notifyIcon.Visible = false;
        }
    }

预期结果:图标显示在系统托盘中。实际结果:什么都没有发生,只有窗口消失了this.Hide();

【问题讨论】:

    标签: c# system-tray notifyicon


    【解决方案1】:

    没有人提到图标是强制性的。经过将近一个小时的搜索,我决定尝试给它一个随机图标,使用 Everything 在我的系统上搜索一个随机的 .ico 文件。瞧,这让图标出现了:

    notifyIcon.Icon = new Icon(@"C:\path\to\random\icon.ico");
    

    显然没有图标,默认是静默失败。没有默认图标,也不会显示空磁贴,它会完全忽略您。

    奖励:如果您想使用表单的图标,您可以使用:

    notifyIcon.Icon = this.Icon;
    

    【讨论】:

    • Well NotifyIcon 用于系统托盘。 ;) 没有图标 = 没有系统托盘项
    • @TyCobb 我同意除了:表单默认有一个图标,为什么没有系统托盘?如果它没有默认值,它应该完全引发某种异常(或至少警告!)如果它没有设置。它知道您正在尝试显示它 (visible=true) 并且它知道它不能(无图标)。
    猜你喜欢
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多