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

时间:2013-04-04 12:55:48

标签: c# wpf minimize tray

我写了一个小工具,应该看看我的服务器写一封邮件,如果出现问题,例如使用过高的RAM等等......

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

我希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

在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.";