C#?Winform消息通知系統(tǒng)托盤氣泡提示框ToolTip控件
氣球狀提示框的介紹和系統(tǒng)通知變化
NotifyIcon控件表示系統(tǒng)右下角任務(wù)欄上的托盤圖標(biāo),其ShowBalloonTip方法用于顯示任務(wù)欄中一定時間的具有指定標(biāo)題、消息內(nèi)容和圖標(biāo)的氣球狀提示框(氣泡提示框)。
也可以通過NotifyIcon屬性BalloonTipIcon、BalloonTipText、BalloonTipText指定相關(guān)內(nèi)容。
單獨介紹它的變化,是因為在Win7及之前的系統(tǒng)中,該方法顯示提示為氣球狀的提示框,基本效果如下:

但是在Win10,氣球狀的提示框已經(jīng)該系統(tǒng)本地的toast通知效果取代,也就是,使用NotifyIcon的ShowBalloonTip方法,將會顯示系統(tǒng)本地通知,具體效果如下:

并且notifyIcon.ShowBalloonTip(timeout)第一個參數(shù)timeout,從Windows Vista開始,此參數(shù)已經(jīng)無效,通知的顯示時間基于系統(tǒng)的輔助功能設(shè)置,所以一般設(shè)置為0即可。
消息通知的提示
新建項目NotificationTrayToolTip,添加兩個按鈕,一個顯示,一個關(guān)閉,以及一個名為notifyIcon的NotifyIcon控件(初始可見性設(shè)置為false:notifyIcon.Visible = false;)。
設(shè)計器中為notifyIcon的Icon屬性指定一個圖標(biāo)文件。

ShowBalloonTip()方法及指定消息類型
顯示氣泡提示按鈕的點擊事件中,設(shè)置notifyIcon可見,并執(zhí)行ShowBalloonTip()方法,其第二個參數(shù)為標(biāo)題,第三個參數(shù)為消息內(nèi)容,最后一個為消息類型。
private void buttonPro1_Click(object sender, EventArgs e)
{
notifyIcon.Visible = true;
// timoeout參數(shù)已經(jīng)無效,通知的顯示時間基于系統(tǒng)的輔助功能設(shè)置
notifyIcon.ShowBalloonTip(0, "消息標(biāo)題-Error", "這是一個錯誤類型的消息內(nèi)容", ToolTipIcon.Error);
}
系統(tǒng)toast通知顯示內(nèi)容對應(yīng)notifyIcon控件的屬性或參數(shù):

關(guān)閉消息提示按鈕的點擊事件代碼中,設(shè)置Visible = false關(guān)閉系統(tǒng)提示:
private void buttonPro2_Click(object sender, EventArgs e)
{
notifyIcon.Visible = false;
//notifyIcon.Visible = true;
}
notifyIcon.Visible = false會清空所有相關(guān)的系統(tǒng)操作中心里面的消息通知。
NotifyIcon屬性設(shè)置消息
通過屬性也可以指定消息內(nèi)容、標(biāo)題、類型等:
notifyIcon.BalloonTipIcon = ToolTipIcon.Warning; notifyIcon.BalloonTipText = "測試"; notifyIcon.BalloonTipTitle = "標(biāo)題"; notifyIcon.ShowBalloonTip(0);
BalloonTipIcon不同的消息類型
ToolTipIcon消息類型圖標(biāo)的取值有四種,和方法中的對應(yīng):
- ToolTipIcon.Info
- ToolTipIcon.Warning
- ToolTipIcon.Error
- ToolTipIcon.None
ToolTipText屬性
Winform中許多控件都提供有ToolTipText屬性,用于設(shè)置提示消息,用于在鼠標(biāo)位于控件上方(懸停)時,顯示提示語。
通常都是容器控件的子控件項有這個屬性,用于提示不同的子項信息。
一般在設(shè)置子項控件的ToolTipText后,要想使提示生效,還需要設(shè)置父容器控件的ShowItemToolTips為true(DataGridView為ShowCellToolTips屬性)。
如下,ToolStrip、MenuStrip1、ListView、DataGridView、TabControl等幾種控件啟用tip提示,并為子項設(shè)置不同的提示信息。
//必須設(shè)置ShowToolTips為true,當(dāng)鼠標(biāo)位于tab時顯示提示 tabControl1.ShowToolTips = true; tabPage1.ToolTipText = "你好,我是tab提示"; dataGridView1.ShowCellToolTips = true; dataGridView1[0, 0].ToolTipText = "單元格的tip"; toolStrip1.ShowItemToolTips = true; toolStripLabel1.AutoToolTip = true; toolStripLabel1.ToolTipText = "toolStrip1子項的提示"; menuStrip1.ShowItemToolTips = true; menuStrip按鈕ToolStripMenuItem.AutoToolTip = true; menuStrip按鈕ToolStripMenuItem.ToolTipText = "menuStrip1子項的提示"; listView1.ShowItemToolTips = true; listView1.Items[0].ToolTipText = "我是listViewItem的提示";
接本效果如下:

但默認(rèn)提供的提示文本的顯示,并不及時,并且,如果窗體不是焦點窗體,這些提示也都是無效的(而有的子項,如果是激活狀態(tài),tip也會無效)
ToolTip提示控件顯式或主動的提示消息
通過ToolTip控件可以設(shè)置在哪個控件上顯示什么提示信息,以及通過事件觸發(fā)的方式(比如hover、鼠標(biāo)進(jìn)入、鍵盤按鍵),顯式的或多種條件下,展示提示框。
一個ToolTip同時為多個控件設(shè)置提示
ToolTip.SetToolTip(Control control, String caption)方法為指定control控件設(shè)置caption提示消息。
并且,一個ToolTip可以應(yīng)用多個控件。
toolTip.SetToolTip(button1, "我是按鈕1提示"); toolTip.SetToolTip(radioButton1, "單選提示,必需選擇"); toolTip.SetToolTip(buttonPro1, "使用ToolTip的提示");
顯式設(shè)置ToolTip
根據(jù)需要在事件中顯式的進(jìn)行提示:
button1.MouseEnter += Button1_MouseEnter;
//...
private void Button1_MouseEnter(object sender, EventArgs e)
{
toolTip.SetToolTip(button1, "鼠標(biāo)進(jìn)入提示");
}
注:消息提示是跟隨鼠標(biāo)的,如果鼠標(biāo)未在控件位置上方,提示也不會顯示出來。
以上就是C# Winform消息通知系統(tǒng)托盤氣泡提示框ToolTip控件的詳細(xì)內(nèi)容,更多關(guān)于C# Winform消息通知氣泡提示框的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C# Hashtable/Dictionary寫入和讀取對比詳解
本文中將從基礎(chǔ)角度講解HashTable、Dictionary的構(gòu)造和通過程序進(jìn)行插入讀取對比2013-11-11

