C#Winform將軟體最小化至系統托盤

來源:互聯網
上載者:User

標籤:快速鍵   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將軟體最小化至系統托盤

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.