在做整個類似QQ的畢業設計中,有一個小圖標把我給難了一陣子,就是托盤小圖標。
要完成的功能大約是,窗口選擇關閉時變成最小化到托盤圖標,雙擊托盤圖標顯示托盤圖標。
還是以登錄窗口為例子
要有托盤圖標首先需要一個notifyIcon,這個在工具箱中找。然後就是notifyic的相關屬性的設置了,首先需要一個icon圖標,我是直接在網上隨便翻的,不知道翻到了哪位大神的圖標,不好意思,就讓我暫時用一下啦,我保證我的水平還沒辦法用作商業用途T^T,也就是這個地方設置一下icon圖標就好叻。
如果需要右鍵單擊托盤圖標並顯示一些選項和操作的話,這裡還需要在窗口中添加contextmenustrip控件(也就是右鍵快捷方式的控件)了,這個也可以在工具箱中找到。再設置需要擁有的功能就好叻~
上面的都完成了不代表就搞定了,他們兩個屬於兩個陌生人,他們彼此都是獨立的個體,要想點擊圖標出現右鍵還需要硬拉關系~大家多走動走動就熟悉了嘛~
這裡的重要一步就是,notifyicon中的需要關聯剛剛建立的右鍵快捷方式。
然後我就是想將關閉窗口變成最小化到托盤,這個就需要窗體的formclosing事件了。
將notifyicon的visible屬性設置為true(也就是可見),那正常情況下都不會關閉的,所以這個時候將關閉變成最小化就只是需要1、取消關閉;2、窗口最小化。
1 #region 關閉用戶界面即最小化到托盤圖標界面 2 private void Panel_FormClosing(object sender, FormClosingEventArgs e) 3 { 4 // 取消關閉窗體 5 e.Cancel = true; 6 // 將窗體變為最小化 7 this.WindowState = FormWindowState.Minimized; 8 } 9 #endregion
最後一點就是雙擊托盤圖標顯示用戶界面
這個很明顯就是icon的屬性了,上面的功能基本是窗口的屬性,所以他的formclosing事件在窗口中找,現在是icon的事情,那只有在notifyicon的屬性裡面找是否有相關的功能實現的事件了,也就是mousedouble咯~
1 #region 雙擊托盤圖標顯示用戶界面 2 private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e) 3 { 4 if (WindowState == FormWindowState.Minimized) 5 { 6 //還原窗體顯示 7 WindowState = FormWindowState.Normal; 8 //激活窗體並給予它焦點 9 this.Activate(); 10 } 11 } 12 #endregion