程式主要用到了一下幾個類:
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試試效果吧!
運行程式,將顯示一個主視窗,此時還可以看到在工作列上面多了一個表徵圖。當滑鼠移到其上停留一下時,將顯示一個簡單的提示資訊,點擊該表徵圖則將隱藏主視窗,單擊右鍵,出來一個菜單,選"動畫表徵圖開始"和"動畫表徵圖結束"可以控製圖標狀態。