如何像QQ一樣操作Winform程序?
-Begin-
前言
QQ和微信作為日常使用最廣的CS客戶端程序,可能我們以后習(xí)慣了這種操作:
點(diǎn)擊最小化,將程序最小化到任務(wù)欄中
點(diǎn)擊關(guān)閉,并不是真的關(guān)閉,而是縮小到托盤里
從托盤中找到圖標(biāo),雙擊,將程序展示出來
從托盤中找到圖標(biāo),右擊,退出,才是真正的退出程序
今天跟大家分享一下,Winform程序?qū)崿F(xiàn)最小化到托盤及托盤右鍵菜單。
實(shí)現(xiàn)
1、首先假設(shè)已經(jīng)開發(fā)好了應(yīng)用程序,從工具箱中,找到一個組件叫NotifyIcon,拖放到主窗體中。
2、點(diǎn)擊NotifyIcon組件,右側(cè)屬性中,修改Icon和Text,改成你需要設(shè)置的內(nèi)容。
3、主窗體添加一個FormClosing事件,在該事件中編寫代碼如下:
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (realClose == false)
{
this.WindowState = FormWindowState.Minimized;
//隱藏任務(wù)欄區(qū)圖標(biāo)
this.ShowInTaskbar = false;
e.Cancel = true;
}
}
realClose是一個全局字段,表示是否真的關(guān)閉,默認(rèn)值是False,這樣直接點(diǎn)擊關(guān)閉時,并不是真的關(guān)閉程序,而且縮小到托盤。
4、給NotifyIcon組件添加一個雙擊事件,在雙擊事件中,將程序顯示出來,代碼如下:
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
//還原窗體顯示
this. WindowState = FormWindowState.Normal;
//激活窗體并給予它焦點(diǎn)
this.Activate();
//任務(wù)欄區(qū)顯示圖標(biāo)
this.ShowInTaskbar = true;
}
}
5、目前這種情況是無法關(guān)閉程序的,所以需要給NotifyIcon組件添加一個右鍵菜單,從工具箱中,添加一個ContextMenuStrip組件,然后添加兩個Item,分別是打開軟件tsm_Open和關(guān)閉軟件tsm_Exit。
6、打開軟件代碼比較簡單,具體如下:
private void tsm_Open_Click(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
//還原窗體顯示
this.WindowState = FormWindowState.Normal;
//激活窗體并給予它焦點(diǎn)
this.Activate();
}
}
7、退出軟件首先是將realClose置位True,然后調(diào)用this.Close方法即可。
private void tsm_Exit_Click(object sender, EventArgs e)
{
realClose = true;
this.Close();
}
至此,就實(shí)現(xiàn)了Winform程序?qū)崿F(xiàn)最小化到托盤及托盤右鍵菜單。

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?