작업 표시줄을 클릭해 숨김 스위치 표시, 메뉴 우클릭, 폼 닫기 이벤트 캡쳐
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 }
위는 C# 트레이 프로그램 예시입니다. 더블클릭하면 폼이 표시되고, 트레이로 최소화됩니다. . 더 많은 관련 정보를 원하시면 PHP 중국어 홈페이지(m.sbmmt.com)를 팔로우해주세요!