即使在visible = true之后,NotifyIcon也不会显示

时间:2016-05-04 16:29:53

标签: c# system-tray notifyicon

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

  • 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();消失。

1 个答案:

答案 0 :(得分:0)

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

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

显然没有图标,默认是静默失败。没有默认图标,空格子也不显示,它只会完全忽略你。

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

notifyIcon.Icon = this.Icon;