縮小視窗會使用到NotifyIcon這個元件
在使用這個元件要記得配置Icon,如果沒有加入Icon縮小到工具列是看不到的…
這隻程式主要有Form1_Load、Form1_Resize和notifyIcon1_MouseDoubleClick事件
首先說明Form1_Load事件的動作
上述剛剛有提到必須幫NotifyIcon物件配置一個Icon
在表單Load時候將Icon配置為winnie-the-pooh.ico
接著來說明在Form1_Resize的事件的動作
我們都知道Form1_Resize事件會觸發是因為視窗的大小如果有變動,則會啟動這個事件
啟動這個事件時,我們就可以去偵測到底是視窗變大、縮小或是其他變化量
在這邊是去偵測如果目前視窗狀態是縮小的
則把工作列的顯示disable,在將notifyIcon1物件設為可見的
程式縮小時,總是要回覆到原來的畫面可以透過notifyIcon1_MouseDoubleClick事件來處理
判斷如果是左鍵點兩下時,顯示視窗並且將視窗的狀態設定為正常,並將程式重新的在工作列顯示
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace test { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.notifyIcon1.Text = "縮小後的名稱"; this.notifyIcon1.Icon = new Icon(@"X:\Users\........\winnie-the-pooh.ico"); } private void Form1_Resize(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized) { this.ShowInTaskbar = false; this.notifyIcon1.Visible = true; } } private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { this.Show(); this.WindowState = FormWindowState.Normal; this.ShowInTaskbar = true; } } } }
以下成果:
參考文章:
http://www.dotblogs.com.tw/steven0529/archive/2010/08/26/17430.aspx