タスクバーをクリックして表示/非表示スイッチを切り替え、メニューを右クリックして、フォームを閉じるイベントをキャプチャします
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 }