閱讀須知:純粹是本人啊Jun作爲初學者的筆記和個人對其中知識的複習,大神請繞道。
實驗01:VS2015 對象瀏覽器的使用、簡單調試和斷點使用。
實驗05:RS485串口通訊,串口指令的收發應用,完成串口基礎功能,github地址:實驗05
實驗06:窗體應用的最小化在Windows狀態欄中顯示托盤圖標
實驗07:Windows的註冊表的基本使用方法,文件流保存爲文本文件基礎用法
實驗08:利用GDI+技術生成簡單驗證碼,類似excel的數據折線圖、並保存爲圖片
實驗09:Access數據庫的創建、表創建、MD5加密,數據、圖片保存在數據庫的用法
實驗10:將DataGridView表單數據保存爲excel文件,表單的基本格式化
包含實驗06~實驗10的功能:github地址:實驗10
那先來看一下實驗06的主要的題目吧。第 1 題純粹畫圖,還是不作考慮了。來看第 2 題,其中有一些我也選擇性不講了。
2、通過Windows Form項目,根據總體需求、總體結構和系統草圖,建立和開發出“XXX溫度監控軟件”,軟件的基本要求有:
(1)能用戶控制,有管理員,可以修改參數等,普通用戶只能採集和顯示數據,密碼直接寫在代碼中。系統啓動時,先顯示登錄窗體,密碼驗證成功後,再進入主窗體,要有密碼驗證失敗的截圖;
(2)主窗體中要有菜單、工具欄和狀態欄,菜單、工具欄要能根據不同用戶而改變,狀態欄中能顯示出當前時間和已登錄的用戶名,要有用戶切換截圖;
(3)主窗體的背景圖爲個人圖片,圖標爲個性化圖標;
(4)系統在最小化時,顯示爲Windows狀態欄中的托盤圖標。
(5)有“幫助”菜單,並實現相應的窗體,能顯示基本的幫助信息,並能持續更新。
我來說一下,第一題的用戶控制(1)能用戶控制,由於實驗06只是原型,我在後面的實驗不斷地將其優化了,所以之後
的實驗再討論這個。先來看一下後面實驗的登錄頁面的完整圖吧。由於還有驗證碼的功能,所以暫時在這不講
看(2)主窗體中要有菜單、工具欄和狀態欄,菜單、工具欄要能根據不同用戶而改變,狀態欄中能顯示出當前時間和已登錄的用戶名,要有用戶切換截圖;
老師在將這個之前,關於菜單、工具欄和狀態欄,都做了介紹,在C#中添加菜單、工具欄和狀態欄也是非常的簡單,
還拿了VS2015做了模板示範
大家可以瞭解一下幾個控件:MenuStrip(菜單欄)、ToolStrip(工具欄)、StatusStrip(狀態欄),
操作起來也十分簡單。
(3)主窗體的背景圖爲個人圖片,圖標爲個性化圖標;
(4)系統在最小化時,顯示爲Windows狀態欄中的托盤圖標。
縮小後如圖所示,就好像QQ縮小的在 Windows 狀態欄會有你的圖片上面那個是狀態欄,有時候我會傻傻分不清,任務欄和狀態欄,所以給自己普及一下。下面的是任務欄
這個QQ縮小的操作也是找了挺多的資料,其中SizeChanged 事件很重要,當你的窗體的尺寸變化都會觸發到這個事件
再來介紹兩個控件:NotifyIcon(指定可在通知區域創建圖標的組件)、ContextMenuStrip(內容菜單欄)
/// <summary>
/// 判斷是否最小化,然後顯示托盤
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MainForm_SizeChanged(object sender, EventArgs e)
{
if(WindowState == FormWindowState.Minimized) //當這個窗體的尺寸狀態爲最小化的時候
{
this.ShowInTaskbar = false; // 最小化的時候,任務欄不顯示
notifyIcon1.Visible = true; //控件 NotifyIcon 可視
}
}
看代碼。這裏用到鼠標事件,其實鼠標事件我在學JS的時候認識的。
/// <summary>
/// 添加雙擊托盤圖標事件(雙擊顯示窗口)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
WindowState = FormWindowState.Normal;//還原窗體顯示
this.Visible = true;
//this.Activate(); //激活窗體並給予它焦點
this.ShowInTaskbar = true; //任務欄顯示圖標
}
}
好吧,只是鼠標左鍵點擊一下就行了嗎,就這麼簡單?
還沒呢~~ 我們常見的軟件除了左鍵點擊狀態欄的圖標顯示窗體外,其實還會有鼠標右擊的軟件任務欄。如圖下
哈哈,這個功能就要提到另一個控件ContextMenuStrip (內容菜單欄)。NotifyIcon和ContextMenuStrip常常配合來使用的
看圖,留意到Windows狀態欄的圖標默認是右鍵點擊會顯示ContextMenuStrip 。
ContextMenuStrip 的操作其實不算難,但有點兒繞,不是很直接能理解。
“打開窗體” 和 “退出程序” 其實是ContextMenuStrip 的屬性Item中加上去的。點擊 Item 後 ,就可以看到裏面有兩個目錄
點擊“添加”按鈕就可以添加目錄的子項
ok了,ContextMenuStrip 的基本功能就講到這裏吧,“打開窗體” 和 “退出程序” 其實就是點擊事件。
“打開窗體” 的點擊事件代碼如下:
/// <summary>
/// 顯示窗體
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void showToolStripMenuItem_Click(object sender, EventArgs e)
{
WindowState = FormWindowState.Normal;
}
“退出程序” 的點擊事件代碼如下
/// <summary>
/// 托盤右鍵退出程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void quitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Dispose();
this.Close();
}
這個(4)系統在最小化時,顯示爲Windows狀態欄中的托盤圖標。的功能在上一次實驗就加上去了,
可以參考一下Github:串口調試助手基礎版
實驗06完成,如果有疑問或者在哪些地方有錯誤的,歡迎大家指出,共同學習,共同進步。
實驗01:VS2015 對象瀏覽器的使用、簡單調試和斷點使用。
實驗05:RS485串口通訊,串口指令的收發應用,完成串口基礎功能,github地址:實驗05
實驗06:窗體應用的最小化在Windows狀態欄中顯示托盤圖標
實驗07:Windows的註冊表的基本使用方法,文件流保存爲文本文件基礎用法
實驗08:利用GDI+技術生成簡單驗證碼,類似excel的數據折線圖、並保存爲圖片
實驗09:Access數據庫的創建、表創建、MD5加密,數據、圖片保存在數據庫的用法
實驗10:將DataGridView表單數據保存爲excel文件,表單的基本格式化
包含實驗06~實驗10的功能:github地址:實驗10