這段時間一直在學習C#,看了書然後又在網上看了N多大神些的blog,然後自己學著做了一個像QQ托盤圖標那樣的小功能的Demo:
(1)、在窗口上點擊關閉按鈕或者最小化時將托盤顯示;
(2)、雙擊托盤圖標顯示窗口;
(3)、右鍵點擊托盤圖標提供三個菜單選項,“退出”、“隱藏”、“顯示”;
(4)、程序可以設置開機啟動,隱藏任務欄顯示。就這四個小功能。
1、建一個WinForm程序—TestIconForm,將其屬性ShowInTaskbar改為false,這樣程序將不會在任務欄中顯示;將MaximizeBox屬性設置為false,屏蔽掉最大化按鈕;把StartPosition屬性改為CerternScreen,這樣程序運行後,窗口將會居中顯示。
2、在工具欄中的公共控件裡,拖入NotifyIcon控件—testNotifyIcon,這個是程序運行任務欄右側通知區域圖標顯示控件。
3、在工具欄中的菜單和工具欄裡,拖入ContextMenuStrip—testContextMenuStrip,這個控件是右擊時關聯菜單。
4、右鍵testNotifyIcon選擇屬性,將其屬性ContextMenuStrip改加為testContextMenuStrip,這個時候1和2兩個步驟的兩個控件就關聯了,用於完成上面(3)功能。
5、右鍵testContextMenuStrip選擇屬性,進入Items,然後點擊“添加”,這裡添加三個菜單選項:exitMenuItem、hideMenuItem、showMenuItem,同時分別將其Text屬性改為:退出、隱藏和顯示。
准備工作就這些,下面是大致代碼:
1)、雙擊TestIconForm,即添加Load事件然後
代碼private void Form1_Load(object sender, EventArgs e)
{
testNotifyIcon.Icon = new Icon("e:\MyPicture\testIcon.ico");
//取得程序路徑
string startup = Application.ExecutablePath;
//class Micosoft.Win32.RegistryKey. 表示Window注冊表中項級節點,此類是注冊表裝
RegistryKey rKey = Registry.LocalMachine;
RegistryKey autoRun = rKey.CreateSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionRun");
try
{
autoRun.SetValue("BookServer", startup);
rKey.Close();
}
catch (Exception exp)
{
MessageBox.Show(exp.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
添加Form_Closing,SizeChanged事件
代碼private void Form1_FormClosing(object sender, FormClosingEventArgs e) //關閉按鈕事件
{
e.Cancel = true;
this.Hide();
}private void Form1_SizeChanged(object sender, EventArgs e) //最小化事件按鈕
{
this.Hide();
}
2)、給testNotifyIcon添加MouseDoubleClick事件
代碼private void testNotifyIcon_MouseDoubleClick(object sender, MouseEventArgs e) // 左鍵雙擊,顯示<