亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#實現閃動托盤圖標效果的方法

2020-01-24 01:07:56
字體:
來源:轉載
供稿:網友

本文實例講述了C#實現閃動托盤圖標效果的方法。分享給大家供大家參考,具體如下:

在用戶正在登錄QQ或者使用Firemail郵件系統自動收取郵件的時候,托盤圖標會閃動提示用戶正在運行的任務。

閃動圖標可以使用定時切換托盤圖標的方式實現,托盤圖標可以從ImageList控件中獲取。在ImageList控件里面添加三個icon,第一個icon表示窗體啟動以后的托盤圖標。第二個和第三個圖標分別表示當特定的任務發生的時候,定時切換的圖標。

(1)設置托盤的圖標可以從ImageList控件中的Image對象轉換為Icon對象

/// <summary>/// 設置托盤顯示的圖標/// </summary>/// <param name="index">圖像列表中圖片的索引</param>private void setIconImg(int index){  Image img = this.imgIcon.Images[index];  Bitmap b = new Bitmap(img);  Icon icon = Icon.FromHandle(b.GetHicon());  this.niMain.Icon = icon;}

(2)定時器事件實現圖標的切換

/// <summary>/// 定時器切換圖標顯示/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void tmrIcon_Tick(object sender, EventArgs e){  if (iconFlag)  {    this.setIconImg(1);    iconFlag = !iconFlag;  }  else  {    this.setIconImg(2);    iconFlag = !iconFlag;  }}

(3)窗體的最小化按鈕和關閉按鈕實現隱藏窗體的功能,窗體關閉時,會執行FormClosing 事件,釋放與此窗體關聯的所有資源。因此需要取消關閉事件,實現窗體的隱藏和托盤的顯示功能。

/// <summary>/// 關閉窗體時隱藏窗體顯示托盤圖標/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void FrmMain_FormClosing(object sender, FormClosingEventArgs e){  e.Cancel = true;  this.Hide();  this.niMain.Visible = true;}

(4)托盤關聯菜單有四個功能:

① “顯示” :顯示主窗體、隱藏托盤圖標。
② “運行”:圖標閃動效果,模擬任務正在運行。
③ “停止”:恢復初始化的圖標,模擬任務停止。
④ “退出”:提示用戶并退出應用系統。
完整的代碼如下:

namespace NotifyIconDemo{  public partial class FrmMain : Form  {    //切換圖片的標識    private bool iconFlag = false;    //系統是否運行    private bool isRun = false;    /// <summary>    ///    /// </summary>    public FrmMain()    {      InitializeComponent();      //設置icon顯示的圖片      this.setIconImg(0);    }    /// <summary>    /// 設置托盤顯示的圖標    /// </summary>    /// <param name="index">圖像列表中圖片的索引</param>    private void setIconImg(int index)    {      Image img = this.imgIcon.Images[index];      Bitmap b = new Bitmap(img);      Icon icon = Icon.FromHandle(b.GetHicon());      this.niMain.Icon = icon;    }    /// <summary>    /// 顯示主窗體    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void tsmiMain_Click(object sender, EventArgs e)    {      //顯示主窗體      this.Visible = true;      this.WindowState = System.Windows.Forms.FormWindowState.Normal;      //隱藏托盤圖標      this.niMain.Visible = false;      this.Show();    }    /// <summary>    /// 退出    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void tsmiExit_Click(object sender, EventArgs e)    {      //設置托盤的提示信息      this.niMain.BalloonTipText = "成功退出Demo!";      this.niMain.BalloonTipTitle = "退出";      this.niMain.ShowBalloonTip(1000*3);      //延遲退出      Thread.Sleep(1000 * 2);      //釋放托盤圖標資源      this.niMain.Dispose();      //終止線程      Application.ExitThread();    }    /// <summary>    /// 最小化時隱藏窗體,顯示托盤圖標    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void FrmMain_SizeChanged(object sender, EventArgs e)    {      if (this.WindowState == FormWindowState.Minimized)      {        this.Hide();        this.niMain.Visible = true;      }    }    /// <summary>    /// 關閉窗體時隱藏窗體顯示托盤圖標    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)    {      e.Cancel = true;      this.Hide();      //this.ShowInTaskbar = false;//取消窗體在任務欄的顯示      this.niMain.Visible = true;    }    /// <summary>    /// 加載窗體時隱藏窗體    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void FrmMain_Load(object sender, EventArgs e)    {      this.Hide();    }    /// <summary>    /// 定時器切換圖標顯示    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void tmrIcon_Tick(object sender, EventArgs e)    {      if (!this.isRun)      {        return;      }      if (iconFlag)      {        this.setIconImg(1);        iconFlag = !iconFlag;      }      else      {        this.setIconImg(2);        iconFlag = !iconFlag;      }    }    /// <summary>    /// 點擊運行菜單    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void tsmiRun_Click(object sender, EventArgs e)    {      this.tsmiRun.Enabled = false;      this.tsmiStop.Enabled = true;      //設置運行狀態      this.isRun = true;    }    /// <summary>    /// 點擊停止菜單    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void tsmiStop_Click(object sender, EventArgs e)    {      this.tsmiRun.Enabled = true;      this.tsmiStop.Enabled = false;      //設置為停止狀態      this.isRun = false;      //恢復圖標顯示      this.setIconImg(0);    }  }}

更多關于C#相關內容感興趣的讀者可查看本站專題:《C#常見控件用法教程》、《C#數據結構與算法教程》、《C#面向對象程序設計入門教程》及《C#程序設計之線程使用技巧總結

希望本文所述對大家C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97超级碰碰碰| 成人免费大片黄在线播放| 欧美老少做受xxxx高潮| 日韩av免费网站| 国产99久久久欧美黑人| 91精品国产高清| 2019中文字幕全在线观看| 91精品国产自产在线| 日韩精品免费电影| 亚洲www在线| 91干在线观看| 久久久久久久久91| 国产精品一区电影| 38少妇精品导航| 国产精品永久免费视频| 亚洲人成伊人成综合网久久久| 亚洲成人av片| 68精品久久久久久欧美| 国产精品∨欧美精品v日韩精品| 久久亚洲国产精品| 中文字幕亚洲色图| 亚洲欧美日韩高清| 91在线精品视频| 海角国产乱辈乱精品视频| 欧美怡红院视频一区二区三区| 欧美电影在线观看高清| 国产精品国产亚洲伊人久久| 69视频在线免费观看| 国产精品777| 亚洲精品福利免费在线观看| 久久综合九色九九| 欧美孕妇性xx| 亚洲精品小视频在线观看| 精品女同一区二区三区在线播放| 亚洲电影天堂av| 久久夜色精品国产欧美乱| 欧美在线精品免播放器视频| 亚洲精品国产精品乱码不99按摩| 91在线观看免费高清完整版在线观看| 91欧美视频网站| 午夜美女久久久久爽久久| 欧美小视频在线| 欧美一区二区三区精品电影| 日韩精品视频免费在线观看| 狠狠躁夜夜躁人人躁婷婷91| 亚洲人成网7777777国产| 欧美自拍视频在线观看| 日韩av日韩在线观看| 九九九久久国产免费| www.日韩av.com| 91av在线免费观看| 91精品国产91久久久久久久久| 日韩电影免费在线观看中文字幕| 亚洲大胆人体av| 欧美午夜女人视频在线| 91国产美女视频| 中文日韩电影网站| 日韩成人中文电影| 中文字幕精品网| 国产精品美乳在线观看| 亚洲激情成人网| 国产精品高清在线| 国产69精品99久久久久久宅男| 亚洲男人的天堂网站| 成人免费视频xnxx.com| 欧美片一区二区三区| 日本精品免费观看| 日本高清久久天堂| 欧美激情性做爰免费视频| 日韩av一区在线观看| 欧美日韩在线一区| 亚洲精品国产精品国自产观看浪潮| 欧美日韩国产一中文字不卡| 国产在线观看精品| 日韩免费在线播放| 一本一本久久a久久精品综合小说| 日韩免费在线播放| 国模吧一区二区三区| 日本精品久久中文字幕佐佐木| 疯狂做受xxxx高潮欧美日本| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产精品中文| 91欧美精品成人综合在线观看| 亚洲国产成人在线播放| 久精品免费视频| 亚洲黄色免费三级| 在线电影欧美日韩一区二区私密| 欧美性xxxx极品hd满灌| 亚洲电影第1页| 久久久久久网址| 久久福利视频导航| 亚洲福利在线观看| 精品久久久久久久久久久久久久| 久久99久久99精品中文字幕| 在线看日韩av| 亚洲精品98久久久久久中文字幕| 91精品国产色综合久久不卡98| 在线播放精品一区二区三区| 国产ts人妖一区二区三区| 日韩av中文字幕在线免费观看| 91精品久久久久久久久久久| 欧美中文字幕在线视频| www.xxxx精品| 国产精品视频26uuu| 欧美激情成人在线视频| 国产视频丨精品|在线观看| 欧美俄罗斯乱妇| 欧美性猛交xxxx免费看| 欧美精品一本久久男人的天堂| 中文字幕欧美日韩在线| 亚洲第一页中文字幕| 国产精品日韩av| 亚洲精品国产精品久久清纯直播| 国产在线观看精品一区二区三区| 91精品国产91久久久| 日韩成人激情在线| 国产日韩欧美视频在线| 日本精品性网站在线观看| 久久久国产影院| 成人亚洲欧美一区二区三区| 久热在线中文字幕色999舞| 亚洲欧美制服综合另类| 色狠狠久久aa北条麻妃| 久久精品成人动漫| 国产91网红主播在线观看| 国产主播喷水一区二区| 57pao国产精品一区| 久久99亚洲热视| 一本一本久久a久久精品牛牛影视| 亚洲老头同性xxxxx| 久久久视频免费观看| 欧美国产日韩一区二区在线观看| 欧美激情国内偷拍| 久久天天躁狠狠躁夜夜av| 97国产精品视频人人做人人爱| 日韩免费av在线| 色婷婷综合成人| 欧美激情精品久久久久久变态| 亚洲精品福利在线观看| 久久青草精品视频免费观看| 亚洲少妇中文在线| 国产精品久久99久久| 欧美专区福利在线| 国产精品久久久久久久午夜| 久久亚洲精品一区| 中文字幕日韩在线视频| 国产一区二区三区视频免费| 日韩一区视频在线| 国内精品中文字幕| 亚洲综合日韩在线| 久久九九免费视频| 国产日韩综合一区二区性色av| 久久精品亚洲国产| 亚洲精品久久久久久久久久久| 午夜精品一区二区三区视频免费看| 国产精品午夜一区二区欲梦| 国产精品免费一区二区三区都可以| 日韩福利伦理影院免费| 国产精品高潮在线| 日韩在线观看免费网站| 亚洲成av人影院在线观看| 日韩中文字幕在线观看| 亚州精品天堂中文字幕| 亚洲精品视频网上网址在线观看|