2011年1月4日 星期二

System tray program in C#

C#創建一個含有system程式是非常簡單的。步驟如下。

1. 建立一個windows form程式。

2. 從Toolbox上拖曳一個Notify Icon到windows form上。由於Notify Icon沒有實體,所以就會落在下方的灰色地帶。
image

3. 調整Notify Icon的Text屬性,還有顯示的icon。注意,如果沒有設定icon的形況下,執行時在system tray是不會出現icon的。

4. 接著想要在system tray上按右鍵出現表單,從ToolBox上拖曳ContextMenuStrip到windows form上。ContextMenustrip上就自己新增選項跟事件。
image

5. 回到剛剛的Notify Icon,在Context Menu上加入剛剛的ContextMenuStrip。
image

6. 最後的樣子應該會長這樣。編譯後就會出現了。
image

如果你想要讓你的主視窗按下X後自動隱藏,你可以使用下面程式碼。

private void Form1_Resize(object sender, System.EventArgs e){
   if (FormWindowState.Minimized == WindowState)
      Hide();
}

若要顯示,可以使用Show()這個方法。

如果你的主視窗是用Application啟動,那麼Hide()可能會失效。你可以改用

this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;

使用下面的程式碼就可以讓視窗回復

this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;

參考資料:
[1] C# Tip: Placing Your C# Application in the System Tray

沒有留言: