c# winform最小化到托盤,也就是最小化到右下角,其實很簡單,winform中有專門的控制項。
下面是完整的代碼,沒太多需要解釋的。
先在winform中添加notifyIcon控制項,然後啟用相應事件,添加代碼。因為屏蔽了關閉表單事件,可以設定一個全域變數bool變數來分辨是哪裡引起的close事件。
注意添加Form的SizeChanged事件和NotifyIcon控制項的DoubleClick事件
- //全家變數bool closeTag = true;
- //最小化
- private void form1_Resize(object sender, EventArgs e)
- {
- if (this.WindowState == FormWindowState.Minimized)
- {
- NormalToMinimized();
- }
- }
- //close時最小化
- private void form1_FormClosing(object sender, FormClosingEventArgs e)
- {
- e.Cancel = true;
- NormalToMinimized();
- }
- //單擊顯示表單
- private void notifyIcon_MouseClick(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- this.MinimizedToNormal();
- }
- }
- private void MinimizedToNormal()
- {
- this.Visible = true;
- this.WindowState = FormWindowState.Normal;
- notifyIcon.Visible = false;
- }
- private void NormalToMinimized()
- {
- this.WindowState = FormWindowState.Minimized;
- this.Visible = false;
- this.notifyIcon.Visible = true;
- }
- private void frmMain_FormClosing(object sender, FormClosingEventHandler e)
- {
- if (closeTag)
- {
- e.Cancel = true;
- NormalToMinimized();
- }
- }
- //托盤右鍵關閉事件
- private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
- {
- closeTag = false;
- Application.Exit();
- }