[C#]讓視窗縮小到工具列吧-NotifyIcon
C#寫的Windows程式如何讓視窗縮小到系統列呢?今天看了一下,好簡單,只要透過NotifyIcon這個物件就可以做到囉,以下簡單一個範例:
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication7
{
public partial class Form2 : Form
{
//宣告NotifyIcon
private System.Windows.Forms.NotifyIcon notifyIcon1;
public Form2()
{
InitializeComponent();
//指定使用的容器
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
//建立NotifyIcon
this.notifyIcon1.Icon = new Icon("Q32.ico");
this.notifyIcon1.Text = "NotifyIcon Example";
}
private void Form2_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();
this.notifyIcon1.Visible = true;
}
}
}
}
重點就指在Form2建構中的那幾行囉,宣告了一個NotifyIcon,指定好對應的Container跟Icon的路徑及要顯示的文字內容,並在Form2_SizeChanged時去判斷是不是按下縮到最小的選項,如果是的話就將notifyIcon1設定為顯示,這樣一來就可以將我們的程式縮小到系統列囉:
這是我測試的Icon:
可以看到將程式縮小到系統列囉,移動到上頭也會顯示Hint訊息:NotifyIcon Example。
那如果我要像MSN一樣,點選兩下再叫出Form的話怎麼做,很簡單,加入以下的程式即可:
初始化時一併註冊MouseDoubleClick的事件:
this.notifyIcon1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseDoubleClick);
呼叫Show()來叫出此Form即可:
{
//讓Form再度顯示,並寫狀態設為Normal
this.Show();
this.WindowState = FormWindowState.Normal;
}
寫一些Windows的小工具也蠻好玩的。
游舒帆 (gipi) 探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。 |