用過千千靜聽的都知道該軟體能夠最小化到右下角的系統托盤中。最近我做了個小工具,也要實作類別似功能。就是當點擊某個按鈕或者是快速鍵的時候,程式最小化到系統托盤,再次使用快速鍵該程式還原。
首先是解決如何最小化到系統托盤並恢複的問題:
辦法是使用NotifyIcon控制項,該控制項就是最小化後看到的那個按鈕,主要是配置個漂亮的表徵圖:)。程式中加入如下代碼:
1 void MinimizedToNormal()
2 {
3 this.Visible = true;
4 this.WindowState = FormWindowState.Normal;
5 notifyIcon1.Visible = false;
6
7 }
8 void NormalToMinimized()
9 {
10 this.WindowState = FormWindowState.Minimized;
11 this.Visible = false;
12 this.notifyIcon1.Visible = true;
13 }
NormalToMinimized()是把當前表單隱藏,並顯示托盤通知按鈕(這個按鈕初始是隱藏的)。
MinimizedToNormal()是重新顯示表單,並把托盤通知按鈕隱藏。
下面解決如何通過快速鍵控制最小化到系統托盤和恢複的問題,辦法是調用windows api
RegisterHotkey()
UnregisterHotKey()這組api。
前一個註冊一個系統快速鍵,當點擊該快速鍵的時候可以調用NormalToMinimized()和MinimizedToNormal()進行最小化和恢複工作。
也可以直接用下面這個壓縮包中的兩個檔案,包含在工程中,這個是老外寫的系統快速鍵控制項。非常方便:)
/Files/dxfcv222/SystemHotkey.rar
代碼如下:
1 void systemHotkey1_Pressed(object sender, EventArgs e)
2 {
3 if (this.notifyIcon1.Visible)
4 {
5 MinimizedToNormal();
6 }
7 else
8 {
9 NormalToMinimized();
10 }
11 }