欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

C# 托盘程序 实例 双击显示窗体,最小化到托盘

程序员文章站 2022-03-19 18:44:38
...
单击任务栏 显示-隐藏切换,右键菜单,捕捉关闭窗体事件
 public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }


        #region 注销


        public void Logout()
        {
            if (MessageBox.Show("确认要退出吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                notifyIcon1.Visible = false;
                FormCollection fc = Application.OpenForms;
                if (fc != null && fc.Count > 0)
                {
                    foreach (Form window in fc)
                    {
                        window.Hide();
                    }
                }
                CacheHelper.CurrentUsrName = "";
                CacheHelper.CurrentRoleId = 0;
                frmLogin fl = new frmLogin();
                fl.Show();
            }


        }


        private void 注销登陆ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Logout();
        }


        #endregion


        #region 修改密码


        private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmChangePwd fcp = new frmChangePwd();
            fcp.Show();
        }


        #endregion


        private void frmMain_Load(object sender, EventArgs e)
        {


        }


        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("确认要退出吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                Logout();
            }
            else
            {
                e.Cancel = true;
            }
        }


        private void 最大化ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ShowWin();
        }


        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Logout();
        }


        private void frmMain_SizeChanged(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                HideWin();
            }
        }


        private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
            }
            else
            {
                ShowWin();
            }
        }


        #region 隐藏显示窗体


        /// <summary>
        /// 隐藏窗体
        /// </summary>
        private void HideWin()
        {
            this.notifyIcon1.Visible = true;
            this.Hide();
        }


        /// <summary>
        /// 显示主窗体
        /// </summary>
        private void ShowWin()
        {
            if (Visible)
            {
                HideWin();
            }
            else
            {
                /////这里注意顺序很重要,先show 后设置state
                Show();
                WindowState = FormWindowState.Normal;
            }
        }


        #endregion
    }

以上就是C# 托盘程序 实例 双击显示窗体,最小化到托盘 的内容,更多相关内容请关注PHP中文网(www.php.cn)!