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

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

单击任务栏  显示-隐藏切换,右键菜单,捕捉关闭窗体事件

    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  
       }