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();
        }

  

posted @ 2026-03-27 16:12  fulllove  阅读(3)  评论(0)    收藏  举报