C# 托盤程序 實例 雙擊顯示窗體,最小化到托盤

jopen 9年前發布 | 4K 次閱讀 C#

單擊任務欄  顯示-隱藏切換,右鍵菜單,捕捉關閉窗體事件

    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  
   }  </pre> 


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!