用過千千靜聽的都知道該軟件能夠最小化到右下角的系統托盤中。最近我做了個小工具,也要實現類似功能。就是當點擊某個按鈕或者是快捷鍵的時候,程序最小化到系統托盤,再次使用快捷鍵該程序還原。
首先是解決如何最小化到系統托盤並恢復的問題:
辦法是使用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 &nbs if (this.notifyIcon1.Visible)
4 {
5 MinimizedToNormal();
6 }
7 else
8 {
9 NormalToMinimized();
10 }
11 }