winfrom 隐藏窗体,在托盘显示
在窗体中托一个notifyIcon控件,右键此控件双击notifyIcon1_MouseDoubleClick事件(此事件是点击托盘程序恢复窗体),启动隐藏按下面方法写即可
// 核心:重写设置显示状态的方法
protected override void SetVisibleCore(bool value)
{
if (!this.IsHandleCreated)
{
value = false;
this.CreateHandle();
// ✅ 在这里初始化托盘并显示(关键修复)
notifyIcon1.Icon = this.Icon; // 直接用窗体图标
notifyIcon1.Visible = true;
// notifyIcon1.BalloonTipText = "程序已启动并最小化到托盘";
//notifyIcon1.ShowBalloonTip(1000);
}
base.SetVisibleCore(value);
}
// 隐藏到托盘
private void HideToTray()
{
this.Hide();
notifyIcon1.Visible = true;
notifyIcon1.BalloonTipText = "程序已最小化到托盘";
notifyIcon1.ShowBalloonTip(1000);
}
/// <summary>
/// 点击托盘恢复窗体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.Focus();
}

浙公网安备 33010602011771号