標籤:快速鍵 menus public mouse hand 滑鼠右鍵 highlight reg 步驟
最近做了一個關於軟體最小化到托盤裡的功能,對此做了一點小小的總結,關於如何將軟體最小化托盤裡,並且點擊對應小表徵圖會有許多可供選擇的菜單,其實主要用的控制項是就NotifyIcon控制項與contextMenuStrip控制項的結合使用,利用contextMenuStrip控制項添加對應的菜單以及菜單對應的功能。
第一步:首先介紹一下NotifyIcon控制項的屬性:
BalloonTipIcon —— 氣泡提示的類型,有None(無)、Info(藍色驚嘆號)、Warnning(黃色驚嘆號)、Error(小紅叉)
比如:此圖從別處借用
BalloonTipText —— 氣泡提示的內容,如的None等氣泡類型資訊;
BalloonTipTitle —— 氣泡提示的標題,如的Tip;
ContextMenuStrip —— 綁定的右鍵菜單;
Icon —— 所顯示的表徵圖;
Text —— 滑鼠移上去時,顯示的提示資訊;
Visible —— 是否顯示表徵圖,當然,不顯示就看不到了。
第二步:介紹如何使用NotifyIcon控制項
首先添加一個click事件
private void notifyIcon1_Click(object sender, EventArgs e) { //EventArgs繼承自MouseEventArgs,所以可以強轉 MouseEventArgs Mouse_e = (MouseEventArgs)e; //點滑鼠右鍵,return if (Mouse_e.Button == MouseButtons.Left) { ShowForm(); } } private void ShowForm() { try { if (CommonClass.OpenFormName == "LoginForm") { this.Show(); this.WindowState = FormWindowState.Normal; } else if (CommonClass.OpenFormName == "MainForm") { foreach (Form frm in Application.OpenForms) { if (frm.Name == "MainForm") { frm.Show(); frm.WindowState = FormWindowState.Normal; } } } else { foreach (Form frm in Application.OpenForms) { if (frm.Name == "StepNewRegisterForm") { frm.Show(); frm.WindowState = FormWindowState.Normal; frm.Activate(); } } } this.notifyIcon1.Visible = false;// 隱藏程式小表徵圖 } catch (Exception ex) { //XtraMessageBox.Show(ex.Message, "提示資訊", MessageBoxButtons.OK); } }
第三步:
在使用NotifyIcon控制項時,經常需要用到捷徑功能表(ContextMenu控制項)。添加捷徑功能表,如:
1.添加右鍵菜單
2.將右鍵菜單和小表徵圖綁定
3.如何為功能表項目添加點擊事件,步驟如下:
單擊事件具體處理邏輯:
private void ShowForm() { try { if (CommonClass.OpenFormName == "LoginForm") { this.Show(); this.WindowState = FormWindowState.Normal; } else if (CommonClass.OpenFormName == "MainForm") { foreach (Form frm in Application.OpenForms) { if (frm.Name == "MainForm") { frm.Show(); frm.WindowState = FormWindowState.Normal; } } } else { foreach (Form frm in Application.OpenForms) { if (frm.Name == "StepNewRegisterForm") { frm.Show(); frm.WindowState = FormWindowState.Normal; frm.Activate(); } } } this.notifyIcon1.Visible = false;// 隱藏程式小表徵圖 } catch (Exception ex) { } }
第四步:如何在軟體最小化時添加自訂提示內容:
public void HideForm() { try { //顯示小表徵圖 this.notifyIcon1.Visible = true; //隱藏表單 this.hide(); //取消在工作列中顯示 this.ShowInTaskbar = false; //最小化到托盤的顯示內容 notifyIcon1.ShowBalloonTip(3000, "程式最小化提示", "表徵圖已經縮小到托盤,開啟視窗請雙擊表徵圖即可。也可以使用Alt+S鍵來顯示/隱藏表單。", ToolTipIcon.Info); } catch (Exception ex) { } }
第五步:在步驟四中提到了一點快速鍵的東西,由於所知不多,恐表達有誤,就直接貼代碼吧,留給自己積累一下,此處我藉助了一個老項目封裝的dll
private RegisterHotKeyHelper hotKey2 = new RegisterHotKeyHelper(); #region --加入快速鍵 /// <summary> /// 設定Alt+S的顯示/隱藏表單全域熱鍵 /// </summary> private void SetHotKey() { try { hotKey2.Keys = Keys.S;//可任意設定你想用的字母鍵 hotKey2.ModKey = RegisterHotKeyHelper.MODKEY.MOD_ALT; hotKey2.WindowHandle = this.Handle; hotKey2.WParam = 10003; hotKey2.HotKey += new RegisterHotKeyHelper.HotKeyPass(hotKey2_HotKey); hotKey2.StarHotKey(); } catch (Exception ex) { } }
以上內容僅作為學習積累,希望也能協助到大家。
C#Winform將軟體最小化至系統托盤