1.Windows窗體應用程序的各種組件
2.windows窗體控件的主要類別和功能
3.Windows窗體應用程序處理事件的方法
4.添加並配置Windows窗體和控件
5.創建時間處理程序並監視程序
6.在程序運行時向窗體添加控件和事件處理程序
1.創建簡單Windows應用程序
之前創建的HelloWorld的窗口可以和我們平時使用的窗口做個對比,左上角有個標題欄,右上角是幾乎所有程序都有的最小化,最大化,關閉按鈕。此時來看解決方案管理器(solution explorer)。對比軟件自動生成的幾個文件:Assemblyinfo.cs,Resources.resx,Settings.settings,Form1.cs,Program.cs等等。
按照以前寫代碼的想法,一般程序都是從main開始執行的,打開Program.cs可以發現里面有個main函數,也就是說這個文件就是整個項目的入口,再打開Form1.cs文件。這個文件就是我們一開始寫HelloWorld的地方,也就是說這是一個實現helloWorld的模塊,在這個窗口中有個button,點擊觸發事件,實現一個消息彈出。此時如果我們要添加一個窗體
2.windows窗體控件的主要類別和功能
我們添加一個叫做Form2.cs的窗體,做工程的時候不要這個樣命名。添加完畢會發現和一開始我們建立的Form1.cs窗體是一樣的,同樣的也有窗體屬性,可以通過屬性來確定這些窗體的各種功能,比如命名,或者窗體上的某個按鈕要鍵盤才能點擊,常見的窗體屬性如下:
(Name) | 項目中窗體的名稱(寫代碼時候用的類似android中所說的ID)通過這個id找到這個可視的窗口 | 默認命名就是上面偷懶時候自動命名出來的form1.cs form2.cs |
AcceptButton | 設置某個按鈕,當用戶按Enter鍵時才相當於單擊此按鈕 | |
CancelButton | 當用戶按ESC的時候相當於單擊此按鈕 | |
ControlBox | 控制:最大化、最小化、幫助、關閉 | |
StrartPostion | 窗體第一次出現時候的位置 | |
FormBorderStyle | 控制窗體的外觀 | |
MaximizeBox | 是否有最大化按鈕 | |
MinimizeBos | 最小化 | |
Text | 顯示在標題欄上的文本 |
向窗體添加控件
方法1 向窗體添加多個控件,然后調整其大小和位置:
(1)工具箱
(2)工具箱中雙擊要添加的控件
(3)添加之后可以調整位置
方法2 添加控件之后,立即調整其位置和大小
方法3 拖拽控件到窗口
方法1 2 3 主要是玩轉這個工具箱的使用,鼠標點多看,以“Problem driven”的想法來看哪個順手就用哪個。主要將工具箱玩的溜。
控件和組件的功能分類(具體要實現的時候去查表格,不必死記硬背):
文本編輯(編輯框,輸賬號密碼,記賬時候寫數字)
文本編輯主要有TextBox,RichTextBox,MaskedTestBox。
文本顯示(用戶不能編輯,文本顯示)
Label,LinkLabel,StatusStrip
從列表中選擇
CheckListBox 顯示一個可滾動的選項列表,每個選項帶有一個復選框
ComboBox 顯示下拉式列表
DomainUpDown 顯示一個文本項列表
..
圖形顯示
PictureBox 在框架中顯示圖形文件,位圖和圖標
值設置
CheckBox 復選框和文本標簽
RadioButton 可啟用或禁用的按鈕以及文本標簽
TrackBar 用戶沿着標尺移動滑塊來設置值
內容顯示
DataGridView 用戶自定義的網格中顯示數行和數列數據
WebBrower 使用戶能夠在窗體中瀏覽Web頁面
ProcessBar 在水平條中顯示相應比例的矩形來指示操作進度
日期設置
DateTimePicker 顯示一個圖形日歷使得用戶能夠選擇日期或者時間
MonthCalendar 顯示一個圖形日歷使得用戶能夠選擇日期范圍
菜單控件
MenuStrip 顯示按功能分組的應用程序命令和選項
ContexMenuStrip 當用戶用鼠標右鍵單擊關聯控件時,顯示相應的快捷菜單
命令
Button 提供選項以啟動、停止、中斷一個過程
NotifyIcon 在任務欄的狀態通知區域顯示一個圖標
容器
Panel 將一組控件組合在一個不帶標簽的框架上,用戶可在其中進行滾動操作
FlowLayout 在流布局中自動排列控件
GroupBox 將一組控件組合在一個帶標簽的控件上,用戶可以進行滾動操作
...
3.Windows窗體應用程序處理事件的方法
事件處理:前面提到一個helloWorld的程序:點擊按鈕彈出消息框HelloWorld
此時轉變為程序員寫這個程序的想法:一個點擊此按鈕觸發一個事件,調用某段代碼實現某個功能。
在設計時創建事件處理程序
(1)默認事件處理程序:雙擊窗體或者控件來為此對象的默認事件創建事件處理程序。前面的button控件默認的事件就是click,而窗體,窗體就是load某個事件
(2)屬性窗口:
在屬性中找到事件,也就是說:有哪些動作觸發哪些事件。
(3)代碼編輯器窗口:直接在代碼編輯器中創建事件處理程序,在C#應用程序中,通過手動方式將處理程序的代碼寫入窗口
在程序運行時創建事件處理程序
也就是添加代碼:
button1.click + = new EventHandler(button1_click);
解讀語法,對象button1調用click,點擊時候是通過新的對象,在生成這個對象時實現button1_click
更多的事件處理技巧
(1)使用單個事件處理方法來處理多個事件。
(2)創建重寫基類方法的事件處理方法。
關於類與對象的知識點:
控件基類: 控件都是從System.Windows.Forms.Control類繼承而來的。通常意義上的控件都是一種組件(Component),這種組件結合了圖形界面的特點和預先設計好的功能。其實控件就是用來完成特定任務的可重用代碼單元。所有的控件都從Control基類繼承而來,因此即使是不同的控件,也會具備一些相同的屬性。
System.Object
System.MarshallByRefObject
System.ComponentModel.Component
System.Window.Forms.Control