Winform托盤NotifyIcon使用(類似QQ訊息提示)
概述:在做cti的過程中,需要在來電的時候在用戶端彈出對應的客戶資訊,所以需要做一個托盤的用戶端程式運行,當有來電的時候通過托盤表徵圖的閃動(當然也可以加些音效)來提示坐席人員。這裡我使用了NotifyIcon控制項實現,主要步驟如下:
第一步:在工具箱中找到NotifyIcon控制項,將其拖入設計版面中,
第二步:設定相應的屬性,
Icon表示在托盤顯示的圖片
Text表示滑鼠移上去的相應提示
其他的屬性這裡就不詳細說明了,具體用的時候可以去百度一下。
第二步:設定事件,本人這裡只用了click事件,當然也可以使用別的事件,看個人需求而定,代碼:
this.icoThread.Abort();//這是在之後定義的一個讓托盤表徵圖閃動的線程,當使用者點擊後停止閃動
this.notifyIcon1.Icon = new Icon("ico/c.ico");//將初始化為原來沒有閃動的表徵圖
this.Visible = true;//彈出MainForm
this.WindowState = FormWindowState.Maximized;//最大化
第三步:定義閃動的線程,代碼:
while (true)
{
this.notifyIcon1.Icon = new Icon("ico/bw.ico");
Thread.Sleep(100);
this.notifyIcon1.Icon = new Icon("ico/c.ico");
Thread.Sleep(100);
}
這裡就是不斷的去交替兩個表徵圖即可,本人項目中用的是一個黑白的和一個彩色的,這樣看上去就是閃動效果了。這個線程的Abort時在第二步中click事件中,開始閃動根據之前的概述應該在得到來電的時候(得到來電具體的說明這裡不說),當然根據每個人的不同需求可以將其放在不同的地方啟動,比如在socket編程中得到訊息的時候啟動等。
第四步:在winform表單最小化的時候展示出notifyicon控制項,代碼:
private void MainForm_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();//隱藏本表單
this.notifyIcon1.Visible = true;//展示出notifyicon控制項
}
}
這樣就簡單的實現了托盤的閃動效果了。