C# Windows Form 開發,將應用程式【隱藏】並【縮小到系統匣】,加入【自定義選單】功能。

  • 8024
  • 0
  • C#
  • 2015-06-10

一般我們在開發桌面應用程式儒WPF或Windows Form應用程式時,會設計成不需要常常開起來,而是在背景程序中工作,當有需要的時候透過系統匣的圖示來打開應用程式,在不占用使用者桌面空間的情境下設計應用程式。

本篇文章將引導您將應用程式【隱藏】並【縮小到系統匣】,加入【自定義選單】功能。

一般我們在開發桌面應用程式儒WPF或Windows Form應用程式時,會設計成不需要常常開起來,而是在背景程序中工作,當有需要的時候透過系統匣的圖示來打開應用程式,在不占用使用者桌面空間的情境下設計應用程式。

 

本篇文章將引導您將應用程式【隱藏】並【縮小到系統匣】,加入【自定義選單】功能。

 

 

會寫這篇文章的原因其實也很清楚明瞭,為了讓應用程式能夠常駐在系統匣待命,

並且可以在背景下默默耕耘工作。

再來這功能也是SUKI很久之前開發專案所用到的功能,在此分享給各位未來國家的棟樑!!

 

透過使用者介面上的控制項來觸發隱藏功能

 

按下按鈕後縮小到系統匣

 

並自定義選單功能

 

再來擊點Icon後,會將隱藏的應用程式回復!

 

 

知道工作模式後,直接進入Code :

 

   1:  private void Initial()
   2:  {
   3:      notifyIcon = new NotifyIcon();
   4:      //設定通知欄提示的文字
   5:      notifyIcon.BalloonTipText = "Still running";
   6:      //設定通知欄在滑鼠移至Icon上的要顯示的文字
   7:      notifyIcon.Text = "NotifyIcon範例";
   8:      //決定一個Logo
   9:      notifyIcon.Icon = (System.Drawing.Icon)(Properties.Resources.Logo);
  10:      //設定按下Icon發生的事件
  11:      notifyIcon.Click += (sender, e) => {
  12:          //取消再通知欄顯示Icon
  13:          notifyIcon.Visible = false;
  14:          //顯示在工具列
  15:          this.ShowInTaskbar = true;
  16:          //顯示程式的視窗
  17:          this.Show();
  18:      };
  19:   
  20:      //設定右鍵選單
  21:      //宣告一個選單的容器
  22:      ContextMenu contextMenu = new ContextMenu();
  23:      //宣告選單項目
  24:      MenuItem notifyIconMenuItem1 = new MenuItem();
  25:      //可以設定是否可勾選
  26:      notifyIconMenuItem1.Checked = true;
  27:      //在NotifyIcon中的頁籤,順序用
  28:      notifyIconMenuItem1.Index = 1;
  29:      //設定顯示的文字,後面的(S&)代表使用者按S鍵也可以觸發Click事件!
  30:      notifyIconMenuItem1.Text = "項目一(S&)";
  31:      //設定按下後的事情
  32:      notifyIconMenuItem1.Click += (sender, e) => {
  33:          MessageBox.Show("項目一 按下囉!!");
  34:      };
  35:      //將MenuItem加入到ContextMenu容器中!
  36:      contextMenu.MenuItems.Add(notifyIconMenuItem1);
  37:      //設定notifyIcon的選單內容等於剛剛宣告的選單容器ContextMen;
  38:      notifyIcon.ContextMenu = contextMenu;
  39:   
  40:          
  41:   
  42:  }
  43:  //隱藏按鈕按下
  44:  private void button1_Click(object sender, EventArgs e)
  45:  {
  46:      //讓程式在工具列中隱藏
  47:      this.ShowInTaskbar = false;
  48:      //隱藏程式本身的視窗
  49:      this.Hide();
  50:      //通知欄顯示Icon
  51:      notifyIcon.Visible = true;
  52:   
  53:      //通知欄提示 (顯示時間毫秒,標題,內文,類型)
  54:      notifyIcon.ShowBalloonTip(1000, "這是標題", "這是內文", ToolTipIcon.Info);
  55:  }

 

如此一來我們就可以透過按鈕或其他自定義的事件中,將視窗隱藏並縮小到系統匣中。

並在系統匣的Icon上點選右鍵出現自定義的選單。

 

References : NotifyIcon 類別

 

文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 !  感謝。

SUKI

HOLIESTAR