Net系统托盘功能

第一步:在窗体上添加一个ContextMenustrip控件,在控件上添加显示主窗体、退出功能栏,如下图:

Net系统托盘功能

第二步:给显示主窗体一栏命名,设置click点击事件;退出一栏命名,设置click点击事件

第三步:添加notifyIcon控件,把contextMenuStrip控件挂到notifyIcon控件上,并添加托盘图标以及系统名称,设置鼠标单击事件,如下图:

Net系统托盘功能

第四步:实现代码。

主程序窗体添加FormClosing事件:

 /// <summary>
        /// 主程序托盘事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;//取消关闭窗体
            this.Hide();
            this.ShowInTaskbar = true;//取消窗体在任务栏的显示
            this.notifyIcon1.Visible = true;//显示托盘图标
        }

显示主窗体点击事件:

 /// <summary>
        /// 显示主窗体
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tlsmShow_Click(object sender, EventArgs e)
        {
            this.Show();
            this.ShowInTaskbar = true;
            this.notifyIcon1.Visible = false;
        }

退出点击事件:

 /// <summary>
        /// 退出
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tlsmexit_Click(object sender, EventArgs e)
        {
            this.Dispose(true);
            Application.ExitThread();
        }

notifyIcon的鼠标单击事件:

/// <summary>
        /// 鼠标单击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            if(e.Button==MouseButtons.Left)
            {
                this.Show();
                this.ShowInTaskbar = true;
                this.notifyIcon1.Visible = false;
            }
        }