一 托盤通知
NotifyIcon托盤通知:
程式可以在通知區建立一個通知圖示。一般地,可以提示一個氣泡通知,右鍵選單支援。
準備:需要一個圖示(*.ico),用於顯示在通知區。如果沒有ico格式,可以將png圖片轉成ico。
演示:在專案中新增托盤通知。
① 設定文字Text;
② 選擇圖示Icon;
預設地,圖示資源儲存在Form1.resx裡,其實也可以使用全域性圖示資源。
執行程式,觀察托盤區的圖示。
二 氣泡通知
氣泡通知:BalloonTip
演示:點選下載時,開啟一個下載任務。下載完成時,在托盤處顯示氣泡通知。點選氣泡通知時,顯示主視窗。
程式碼實現:
notifyIcon1.ShowBalloonTip(
timeout,
title,
text,
icon);
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace 氣泡通知 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if(e.CloseReason==CloseReason.UserClosing) { e.Cancel = true; this.Hide(); } } private void 顯示主視窗ToolStripMenuItem_Click(object sender, EventArgs e) { this.Show(); this.Activate(); } //模擬下載 private void button1_Click(object sender, EventArgs e) { this.Hide(); Thread th = new Thread(this.DownloadTask); th.Start(); } private void DownloadTask() { for(int i=0;i<5;i++) { Thread.Sleep(1000); int percent = i * 100 / 5; Console.WriteLine("模擬下載任務:{0}%", i); } OnTaskFinished(); } //下載任務完成時,在托盤處顯示氣泡通知 private void OnTaskFinished() { if(this.InvokeRequired) { this.Invoke(new Action(this.OnTaskFinished)); return; } this.notifyIcon1.ShowBalloonTip(0, "下載完成", "下載XXXX.ZIP已經完成", ToolTipIcon.Info); } //使用者點選氣泡通知時,顯示主視窗 private void notifyIcon1_BalloonTipClicked(object sender, EventArgs e) { this.Show(); this.Activate(); } } }