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

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

程序员文章站 2022-03-21 19:13:53
...
单击任务栏 显示-隐藏切换,右键菜单,捕捉关闭窗体事件
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 隐藏显示窗体  
   
   
       ///   
       /// 隐藏窗体  
       ///   
       private void HideWin()  
       {  
           this.notifyIcon1.Visible = true;  
           this.Hide();  
       }  
   
   
       ///   
       /// 显示主窗体  
       ///   
       private void ShowWin()  
       {  
           if (Visible)  
           {  
               HideWin();  
           }  
           else 
           {  
               /////这里注意顺序很重要,先show 后设置state  
               Show();  
               WindowState = FormWindowState.Normal;  
           }  
       }  
  
  
       #endregion  
   }