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);
}
我希望你能帮助我。
在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.";