Download presentation
Presentation is loading. Please wait.
1
視窗程式設計 Class 4 教師:黃聖方
2
第六章 Windows Form (Part II)
3
視窗程式運作模式 視窗程式可以想像成一個執行無窮迴圈的程式,不斷地監看並接收著從外界進入的訊息。
4
Windows Form程式編輯模式
5
建立事件處理函式 點選後直接跳至程式編輯畫面,讓使用者輸入對應的動作。
6
範例回顧 控制項常見事件 TextBox Button Label Click TextChanged
註:大部分的事件的命名都會和其內容有所關聯,因此可以從名稱中去推敲該事件的功能。
7
程式碼撰寫 程式碼架構 一個表單被視為一整個大的類別,所有在此表單當中的控制項和他們的事件處理皆被視為該類別的成員。
其他使用者自訂的成員變數可以宣告在該類別的一開頭。
8
Windows Form檔案格式 檔案格式 每一個表單都會跟著以下三種格式的檔案(以Form1為例):
Form1.cs:程式碼 Form1.Designer.cs:介面設計檔(控制項的建立)、事件函式與控制項的定義 Form1.resx:資源檔 ClassDiagram1.cd:類別關聯圖 用以管理類別當中所有的方法,與檢視類別之間的關係(如繼承關係等) *.csproj:專案檔 紀錄專案中的檔案、連結參考、設定等資訊。
9
控制項的宣告與建立 控制項的事件處理
10
事件處理 以某個Button的Click事件函式為例 產生該事件的控制項 包含事件狀態與資訊的類別
傳入的控制項宣告為所有控制項的父類別,Object;可以強制轉換類別來取得產生事件的控制項。
11
事件處理函式的建立 在屬性視窗中點選「事件」按鈕,開啟事件列表後,雙按需要處理的事件即可。 事件處理可以重覆使用:
如果多個控制項其產生的行為皆一樣的時候,則可令其share同一個事件處理函式 在事件列表的某一事件對應的處理函式中點選下拉式選單。 程式中如何知道是哪一個控制項被點選? 參數sender紀錄傳入事件的控制項。 如要使用該控制項的屬性,先強制轉換型態。
12
事件處理函式的刪除 事件刪除 控制項與對應的事件刪除
只將程式檔中的函式移除,有可能會有編譯錯誤產生。因為在.Desidner.cs檔中還留有控制項與事件處理的定義。 利用類別關聯圖來移除可以同時將事件處理與其定義同時移除。 控制項與對應的事件刪除 刪除控制項後,該事件處理方法仍會遺留在表單的類別中。可供下回使用。 相關的事件處理方法需另外刪除。
13
第七章 常用視窗控制項
14
控制項 控制項之大致分類 非視覺化控制項 視覺化控制項
不會顯示在表單上的;例如,資料庫控制項、定時器、對話盒(Dialog)、(Timer)等 視覺化控制項 字串輸入與顯示: TextBox、Button、Label等 陣列或項目列舉 ListBox、Combobox等 容器 Panel、GroupBox等 其他 以上類似的控制項之間其底下的方法也會很類似。
15
7-1 Button按鈕控制項 Button控制項 在工具箱的 按鈕工具是您在設計輸出入畫面時常用到的控制項之一。 程式中屬性設定
在工具箱的 按鈕工具是您在設計輸出入畫面時常用到的控制項之一。 程式中屬性設定 將button1按鈕控制項設成影像按鈕 button1.Image = Image.FromFile("C:\Graphics\MyBitmap.bmp") ; 將按鈕控制項上面的圖片置中靠右、文字置中靠左。 button1.ImageAlign = ContentAlignment.MiddleRight ; button1.TextAlign = ContentAlignment.MiddleLeft ; 設定Button1控制項的外觀為平面按鈕 button1.FlatStyle = FlatStyle.Flat ; 當在Button1控制項上按一下,設定傳回OK值,其寫法: button1.DialogResult = DialogResult.OK ; 按鈕如何與Enter鍵和ESC鍵結合 在表單中的AcceptButton與CancelButton來選取控制項。
16
7-2 RadioButton選項按鈕控制項 RadioButton控制項
按鈕控制項了除了上節所介紹的Button工具外,Visual C# .NET另外提供可單選的 選項按鈕工具以及可複選的 核取方塊工具兩者供你選擇使用。 RadioButton工具可以用文字或圖形顯示,也可以用文字及圖形同時顯示。由於RadioButton控制項本身具有互斥現象,也就是說同一時間只允許一個Radiobutton控制項被選取,其他的RadioButton控制項都會被設成未選取。所以,一個表單中若有不同性質的RadionButton控制項,就必使用 或 工具來加以分隔,若不加以區隔即使這些控制項分散在表單各處,Visual C# .NET仍視為是同一組選項,同一時間只能允許有一個RadioButton控制項被選取。
17
7-3 CheckBox核取方塊控制項 CheckBox控制項
CheckBox和RadioButton控制項的功能大同小異,兩者都用來從一串選項清單中來做選取的動作,唯一的不同處在於RadioButton控制項具有互斥性只能單選,CheckBox控制項允許單選、多選或不選。
18
7-4 容器控制項 一. GroupBox控制項 當一個表單有多個控制項,可以利用
19
7-4 容器控制項(續) 二. Panel控制項 面板和框架最大的不同,就是面板沒有Text屬性,所以不能顯示面板的標題文字。但是面板控制項具有捲軸,而GroupBox控制項沒有,因此面板較不佔表單的空間。Panel面板控制項和GroupBox控制項一樣有如一個容器(Container),可以將其他的控制項放在該控制項內。
20
7-5 RichTextBox豐富文字控制項 RichTextBox控制項
由於 文字方塊工具無法提供類似 Microsoft Word 能夠輸入、顯示或處理具有格式的文字,此時就必須使用 豐富文字方塊工具。RichTextBox控制項是繼承TextBox控制項而來的,因此除了具有TextBox所有屬性和方法外,還增加了讓使用者能輸入並編輯文字,同時提供比標準的TextBox控制項更進階的格式化功能,如:字型和顏色設定。
21
7-6 清單控制項 一. ListBox控制項 ListBox控制項用來提供一串列的文字項目清單供你選擇,除了可設定單選或多選外,也可以透過 Add和Remove方法來新增或刪除串列中的項目。
22
7-6 清單控制項(續) 二. CheckedListBox控制項
由於CheckedListBox控制項是由ListBox類別繼承過來的,因此兩者的屬性大致一樣,差異處是CheckedListBox控制項清單內的每個選項前面多一個核取方塊。
23
7-6 清單控制項(續) 三. ComboBox控制項
下拉式清單控制項為ListBox控制項的延伸,此控制項類似一個右邊含有下拉鈕的Text控制項,當你按該下拉紐時,該控制項會往下彈出一個下拉式清單。
24
7-8日期時間控制項 MonthCalendar控制項
月曆的建立是先在工具箱中選取 月曆工具,接著在表單內適當位置,壓左鍵並拖曳滑鼠拉出如下圖月曆物件的大小,最後再透過方法來設定月曆的屬性。
25
7-8日期時間控制項(續) 二. DateTimePicker控制項
Visual C# .NET提供一個非常方便且不佔太大空間用來設定日期的工具 。當你在DateTimePicker控制項的下拉鈕上按一下,會彈出如右下圖月曆控制項供你來挑選日期,當你挑選完畢月曆控制項會消失,將挑選的日期顯示在文字框內。
26
7-9 捲軸控制項 HscrollBar/VScrollBar控制項
在Visual C# .NET提供了兩種捲軸工具,一為 水平捲軸(Horizontal Scroll Bar)工具;另一為 垂直捲軸(Vertical Scroll Bar)工具。
27
7-9 捲軸控制項(續) 二. TrackBar控制項
在Windows Form工具箱中提供了 軌跡棒工具,它的功能和捲軸控制項類似,透過它所提供的Maximum和Minimum屬性設定軌跡棒在某個範圍內捲動,用來設定或調整輸入值,以防止操作者輸入的數值超出範圍。垂直或水平捲軸高度寬度均可調整,但軌跡棒只允許調整寬度。
28
7-9 捲軸控制項(續) 範 例 調色盤實作 (p7-55)
利用三個TrackBar控制項,其名稱分別為:tkbRed、tkbGreen、tkbGreen代表紅、綠、藍調色棒。其Minimum/Maximum屬性分別為0/255。將這三個TrackerBar的TickStyle屬性依序設為TopLeft、.BottomRight、Both。當軌跡棒移動時,每個軌跡棒正上方都會有一個標籤控制項分別為lblRed、lblGreen、lblBlue用來顯示目前的顏色設定值,同時會將RGB值顯示在正下方的lblShow標籤控制項內;也會將混色結果顯示在PicShow圖片控制項內。
29
7-9 捲軸控制項(續) 三. Splitter控制項
當你希望能製作出像檔案總管一樣,在執行階段能移動滑鼠到資料夾清單和檔案條列清單兩者中間的邊界間時,會出現左右箭頭游標,此時可以調整資料夾清單的寬度,我們將這個調整棒稱為分隔器(Splitter)。這個由工具箱的 控制項產生的。Splitter 控制項可讓您調整在執行階段可讓使用者調整緊鄰於其停駐順序之前的停駐控制項大小。
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.