.net 通知图标有时不显示

.net 通知图标有时不显示,.net,winforms,notifyicon,.net,Winforms,Notifyicon,我有一个带有Notify图标的Windows窗体应用程序。应用程序在系统启动时自动运行,并显示其Notify图标并隐藏表单: //InitializeComponent() this.SysTrayIcon.Visible = true; //show notifyicon this.SysTrayIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(this.SysTrayIc

我有一个带有Notify图标的Windows窗体应用程序。应用程序在系统启动时自动运行,并显示其Notify图标并隐藏表单:

        //InitializeComponent()
        this.SysTrayIcon.Visible = true; //show notifyicon
        this.SysTrayIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(this.SysTrayIcon_MouseClick);
        //...
        this.Visible = false; //hide form
但由于某些原因,有时Notify图标不会显示在通知区域(系统托盘)中。这是随机发生的,有时显示,有时不显示,并且应用程序在启动时除了load config(加载配置)之外没有做任何事情。应用程序本身启动良好;我可以在任务管理器中看到它正在运行

当我通过手动运行exe来启动应用程序时,不会出现此问题,因此我怀疑偶尔会有一次,应用程序在一些重要资源加载之前加载,并以静默方式失败

看起来是这样,但到目前为止还没有人真正解决他们的问题(或者我的谷歌fu不够强大)


感谢您的帮助。

请查看溢出区域,当Windows决定将图标移动到该区域时,该区域有点随机。代码片段中也没有多少关于如何分配Icon属性的指导。没有它是不会出现的。不,它肯定不在那里(我也在Windows7上运行)。Icon属性是使用计时器分配的,它每1秒更新NotifyIcon及其图标的文本。这听起来很可疑,我们看不到该代码。很明显,你会想在没有定时器的情况下测试它。嗯,我会试试,但我认为这不会有什么区别,因为notify图标在大多数时间都会显示出来;它偶尔只会失败一次(约10%的时间)