欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

C#下實現動態系統托盤圖標

系統 2187 0

(王凱明 2001年12月25日 15:27)

Visual C#是微軟公司推出的下一代程序開發語言,是微軟.Net框架中的的一個重要組成部分。微軟的.Net平臺堪稱為新一代的互聯網平臺。對于技術開發人員來說,.Net平臺的兩大特性是非常卓越的,首先是其所提供的公共語言運行時,也就是公用語言運行平臺,另一方面就是其龐大而全面的統一編程類。 Visual C#就是通過調用這些類、對象來實現許多比較強大的功能。

本文通過向大家介紹一個.Net平臺上用C#寫的可以停放在任務欄上的圖標程序(類似于Flashget、OICQ那種系統托盤圖標)來和大家一起體驗一下用C#編程的樂趣。



一、概述:


我這里所指的圖標程序是類似于在Windows中經常接觸的停放在任務欄上,在后臺運行的病毒監視、媒體播放等程序。它們一般都具有單擊顯示或隱藏主界面,擊右鍵彈出菜單,當鼠標停在圖標上時顯示提示信息的功能。



程序主要用到了一下幾個類:

System.Windows.Fomrs.NotifyIcon類
System.Windows.Forms.ContextMenu類
System.Windows.Forms.MenuItem類
System.Windows.Forms.Label類
System.Windows.Forms.Timer類



二、程序設計和運行的環境:


(1)微軟公司視窗2000服務器版或視窗XP版

(2).Net FrameWrok SDK Beta 2版



三、具體實現步驟:


(1).在Visual Studio下新建一個C#的工程,不妨命名為AnimateSystemTray。圖示如下:


(2).現在我們來設計程序的主界面:

先將窗體的Text屬性設置為"動畫系統圖標示例",MaximiseBox、MinimiseBox、ShowInTaskbar屬性均設置為False。

再往窗體上添加Label控件、NotifyIcon控件、ContextMenu控件、Timer控件各一個。

將Label控件的Text屬性設置為"請右擊系統托盤圖標";將NotifyIcon控件的Icon屬性設置為一個圖標文件: ,Text屬性設置為"這是個示例程序!",ContextMenu屬性設置為"contextMenu1";接下來開始編輯ContextMenu控件,圖示如下:


最后還要在導入兩個圖標 (Icon1.ico), (Icon2.ico)文件到該項目。
(3).現在我們開始編寫代碼部分:

首先在我們的類中添加以下數據成員:

private Icon m_Icon1;
private Icon m_Icon2;
private bool m_bFlag;
private bool m_bShowWnd;

修改Form1()函數為:

public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
m_bFlag=true;
m_bShowWnd=true;

try
{
m_Icon1 = new Icon("Icon1.ico");//導入圖標文件
m_Icon2 = new Icon("Icon2.ico");
}
catch ( Exception e )
{
MessageBox.Show("Error " + e.Message,"Animate Tray - Error");
menuItem2.Enabled = false;
menuItem3.Enabled = false;
}
}

添加menuItem1、menuItem2、menuItem3、m_trayIcon的Click事件,消息處理函數如下:
private void menuItem1_Click(object sender, System.EventArgs e)
{
timer1.Start();//打開計時器
}

private void menuItem2_Click(object sender, System.EventArgs e)
{
timer1.Stop();//停止計時器
}

private void menuItem3_Click(object sender, System.EventArgs e)
{
Application.Exit();//退出應用程序
}

private void m_trayIcon_Click(object sender, System.EventArgs e)
{
if(m_bShowWnd == true)//隱藏主界面
{
this.Visible = false;
m_bShowWnd = false;
}
else//顯示主界面
{
this.Visible = true;
m_bShowWnd = true;
}
}


最后還要添加timer1的Tick()函數:

private void timer1_Tick(object sender, System.EventArgs e)
{
if ( m_Icon1 != null && m_Icon2 != null ) //如果兩個圖標文件都被正確載入
{
//只要timer1被啟動,則在兩個圖標之間不斷進行選擇變換,實現動畫效果
if ( m_bFlag == true )
{
m_trayIcon.Icon = m_Icon2;
m_bFlag = false;
}
else
{
m_trayIcon.Icon = m_Icon1;
m_bFlag = true;
}
}
}

好了,按Ctrl+F5試試效果吧!

運行程序,將顯示一個主窗口,此時還可以看到在任務欄上面多了一個圖標。當鼠標移到其上停留一下時,將顯示一個簡單的提示信息,點擊該圖標則將隱藏主窗口,單擊右鍵,出來一個菜單,選"動畫圖標開始"和"動畫圖標結束"可以控制圖標狀態。



四.總結:


做完這個程序,我們不難發現用C#做一些運用程序效果是非常方便的。以前我在SDK、MFC下,用到了 Shell_NotifyIcon()、TrackPopMenu()以及DestroyMenu(),還要自己添加消息處理函數,工作量是非常大的。現在微軟為我們做好了這些工作,是不是很方便?快快加入C#的行列吧。

(責任編輯 尤北 lvye@staff.ccidnet.com

C#下實現動態系統托盤圖標


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品乱码人人做人人爱 | 一区二区视频在线 | 奇米色偷偷 | 久久久久久久久淑女av国产精品 | 午夜黄色大片 | 排球少年第四季樱花动漫 | 综合精品在线 | 欧美日韩一二区 | 亚洲人6666成人观看 | 久久中文字幕一区二区三区 | 久久不卡免费视频 | 国产欧美一区二区 | 国产福利99 | 97精品国产91久久久久久 | 一级片a级片 | 日韩精品一区二区三区免费观看 | 久久精品视 | 久久久久久久影院 | 成人免费网站在线观看 | 奇米777四色成人影视 | 91精品观看| 99国产精品 | 日韩a在线观看 | 毛片一级片 | 久久久久女人精品毛片 | 久久99热久久精品在线6 | av中文字幕在线 | 亚洲一区二区三 | 91精品国产欧美一区二区 | 国产亚洲视频在线 | 偷拍在线观看视频在线观看地址 | 亚洲精品成人av久久 | 欧美极品一区二区 | 三级精品在线观看 | 久久草资源费视频在线观看 | 色婷婷精品视频 | 亚洲精品福利一区二区三区 | 亚洲精品久久久久无码AV片软件 | 亚洲视频在线免费看 | 亚洲综合在线一区 | 狠狠做深爱婷婷久久一区 |