c#程序在最小化系统托盘时崩溃/关闭

本文关键字:崩溃 关闭 程序 最小化 系统 | 更新日期: 2023-09-27 18:07:28

我写了一个小工具,它应该监视我的服务器,并在出现问题时给我写邮件,如内存使用率过高等。

现在我的问题,我想最小化我的程序到系统托盘,它工作得很好:)我看到几秒钟的图标在托盘。在那之后,我的程序就结束了……不知道进程已经结束:d

这里是我的代码最小化到托盘:
InitializeComponent();
var icon = new NotifyIcon();
icon.Icon = new Icon("watchdog.ico");
icon.Visible = true;
icon.DoubleClick +=
       delegate(object sender, EventArgs args)
       {
           this.Show();
           this.WindowState = WindowState.Normal;
       };
protected override void OnStateChanged(EventArgs e)
       {
           if (WindowState == WindowState.Minimized)
                this.Hide();
           base.OnStateChanged(e);
       }

我希望你能帮助我。

c#程序在最小化系统托盘时崩溃/关闭

在Server 2012上,我在最小化托盘时也遇到了一个异常,但它在Windows 7 Pro电脑上工作得很好。在我能够远程调试之后,问题就很清楚了:

抛出异常:'System. 'ArgumentException"System.Windows.Forms.dll

附加信息:气球提示文本必须具有非空值。

修复是添加气球提示文本到图标:

var icon = new NotifyIcon();
icon.BalloonTipText = "Program is minimized. Click the tray icon to restore it.";