1

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

现在我的问题是,我想将我的程序最小化到系统托盘并且它工作正常:) 我在托盘中看到了几秒钟的图标。之后我的程序消失了......关闭......不知道进程消失了: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);
       }

我希望你能帮助我。

4

1 回答 1

0

在 Server 2012 上,我在最小化到托盘时也遇到了异常,但它在 Windows 7 Pro 计算机上可以正常工作。在我能够远程调试之后,问题就很清楚了:

抛出异常:System.Windows.Forms.dll 中的“System.ArgumentException”

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

解决方法是向图标添加气球提示文本:

var icon = new NotifyIcon();
icon.BalloonTipText = "Program is minimized. Click the tray icon to restore it.";
于 2016-11-16T16:17:22.620 回答