視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

29
視視視視視視 Class 4 視視 視視視
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    246
  • download

    2

Transcript of 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

Page 1: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

視窗程式設計Class 4教師:黃聖方

Page 2: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

第六章Windows Form ( Part II )

Page 3: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

視窗程式運作模式視窗程式可以想像成一個執行無窮迴圈的程式,不斷地監看並接收著從外界進入的訊息。

控制項一控制項二

控制項三

控制項

訊息(滑鼠點擊、拖曳、鍵盤輸入

等)

藉由「事件處理函式」負責對某訊息做出反應來

訊息

視窗程式

Page 4: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

Windows Form 程式編輯模式

1. 由工具箱把想要的控制項放到表單

2. 修改控制項的屬性

3. 點選此按鈕為該控制項加入要處理的事件處理函

Page 5: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

建立事件處理函式

左邊表示該控制項所有可以接受的訊息名

右邊點兩下可以為該訊息建立事件處理函式。 點選後直接跳至程式編

輯畫面,讓使用者輸入對應的動作。

Page 6: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

範例回顧

控制項常見事件 TextBox

Click TextChanged

Button Click

Label

註:大部分的事件的命名都會和其內容有所關聯,因此可以從名稱中去推敲該事件的功能。

Page 7: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

程式碼撰寫程式碼架構

一個表單被視為一整個大的類別,所有在此表單當中的控制項和他們的事件處理皆被視為該類別的成員。 其他使用者自訂的成員變數可以宣告在該類別的一開頭。

Page 8: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

Windows Form 檔案格式

檔案格式 每一個表單都會跟著以下三種格式的檔案 ( 以 For

m1 為例 ) : Form1.cs :程式碼 Form1.Designer.cs :介面設計檔(控制項的建立)、事

件函式與控制項的定義 Form1.resx :資源檔

ClassDiagram1.cd :類別關聯圖 用以管理類別當中所有的方法,與檢視類別之間的關係

(如繼承關係等) *.csproj :專案檔

紀錄專案中的檔案、連結參考、設定等資訊。

Page 9: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

控制項的宣告與建立 控制項的事件處理

Page 10: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

事件處理

以某個 Button 的 Click 事件函式為例產生該事件的控制項 包含事件狀態與資訊的類別

傳入的控制項宣告為所有控制項的父類別, Object ;可以強制轉換類別來取得產生事件的控制項。

Page 11: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

事件處理函式的建立在屬性視窗中點選「事件」按鈕,開啟事件列表後,雙按需要處理的事件即可。事件處理可以重覆使用: 如果多個控制項其產生的行為皆一樣的時候,則可

令其 share 同一個事件處理函式 在事件列表的某一事件對應的處理函式中點選下拉式選單。 程式中如何知道是哪一個控制項被點選?

參數 sender 紀錄傳入事件的控制項。 如要使用該控制項的屬性,先強制轉換型態。

Page 12: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

事件處理函式的刪除

事件刪除 只將程式檔中的函式移除,有可能會有編譯錯誤產

生。因為在 .Desidner.cs 檔中還留有控制項與事件處理的定義。

利用類別關聯圖來移除可以同時將事件處理與其定義同時移除。

控制項與對應的事件刪除 刪除控制項後,該事件處理方法仍會遺留在表單的

類別中。可供下回使用。 相關的事件處理方法需另外刪除。

Page 13: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

第七章常用視窗控制項

Page 14: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

控制項控制項之大致分類 非視覺化控制項

不會顯示在表單上的;例如,資料庫控制項、定時器、對話盒( Dialog )、( Timer )等

視覺化控制項 字串輸入與顯示:

TextBox 、 Button 、 Label 等 陣列或項目列舉

ListBox 、 Combobox 等 容器

Panel 、 GroupBox 等 其他

以上類似的控制項之間其底下的方法也會很類似。

Page 15: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-1 Button 按鈕控制項 .壹 Button 控制項

在工具箱的 按鈕工具是您在設計輸出入畫面時常用到的控制項之一。

.貳 程式中屬性設定 將 button1 按鈕控制項設成影像按鈕

button1.Image = Image.FromFile("C:\Graphics\MyBitmap.bmp") ;

將按鈕控制項上面的圖片置中靠右、文字置中靠左。button1.ImageAlign = ContentAlignment.MiddleRi

ght ;button1.TextAlign = ContentAlignment.MiddleLeft

; 設定 Button1 控制項的外觀為平面按鈕

button1.FlatStyle = FlatStyle.Flat ; 當在 Button1 控制項上按一下,設定傳回 OK值,其寫法:

button1.DialogResult = DialogResult.OK ;.參 按鈕如何與 Enter鍵和 ESC鍵結合

在表單中的 AcceptButton 與 CancelButton 來選取控制項。

Page 16: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-2 RadioButton 選項按鈕控制項.壹 RadioButton 控制項

按鈕控制項了除了上節所介紹的 Button工具外, Visual C# .NET另外提供可單選的 選項按鈕工具以及可複選的 核取方塊工具兩者供你選擇使用。

RadioButton工具可以用文字或圖形顯示,也可以用文字及圖形同時顯示。由於RadioButton 控制項本身具有互斥現象,也就是說同一時間只允許一個 Radiobutton 控制項被選取,其他的 RadioButton 控制項都會被設成未選取。所以,一個表單中若有不同性質的 RadionButton 控制項,就必使用 或 工具來加以分隔,若不加以區隔即使這些控制項分散在表單各處, Visual C# .NET仍視為是同一組選項,同一時間只能允許有一個 RadioButton 控制項被選取。

Page 17: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-3 CheckBox 核取方塊控制項.壹 CheckBox 控制項

CheckBox 和 RadioButton 控制項的功能大同小異,兩者都用來從一串選項清單中來做選取的動作,唯一的不同處在於RadioButton 控制項具有互斥性只能單選, CheckBox 控制項允許單選、多選或不選。

Page 18: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-4 容器控制項一 . GroupBox 控制項 當一個表單有多個控制項,可以利用 群組方塊 (或稱框架 )工具將同性質的控制

項框住成為群組 (Group) 。

Page 19: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-4 容器控制項 (續 )二 . Panel 控制項 面板和框架最大的不同,就是面板沒有 Text 屬性,所以不能顯示面板的標題文字。但是面板控制項具有捲軸,而GroupBox 控制項沒有,因此面板較不佔表單的空間。 Panel 面板控制項和 GroupBox 控制項一樣有如一個容器 (Container) ,可以將其他的控制項放在該控制項內。

Page 20: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-5 RichTextBox 豐富文字控制項

.壹 RichTextBox 控制項 由於 文字方塊工具無法提供類似 Microsoft Word

能夠輸入、顯示或處理具有格式的文字,此時就必須使用 豐富文字方塊工具。 RichTextBox 控制項是繼承 TextBox 控制項而來的,因此除了具有 TextBox 所有屬性和方法外,還增加了讓使用者能輸入並編輯文字,同時提供比標準的 TextBox 控制項更進階的格式化功能,如:字型和顏色設定。

Page 21: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-6 清單控制項一 . ListBox 控制項 ListBox 控制項用來提供一串列的文字項目清單供你選擇,除了可設

定單選或多選外,也可以透過 Add 和 Remove 方法來新增或刪除串列中的項目。

Page 22: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-6 清單控制項 (續 )二 . CheckedListBox 控制項 由於 CheckedListBox 控制項是由 ListBox 類別繼承過來的,因此兩

者的屬性大致一樣,差異處是 CheckedListBox 控制項清單內的每個選項前面多一個核取方塊。

Page 23: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-6 清單控制項 (續 )三 . ComboBox 控制項 下拉式清單控制項為 ListBox 控制項的延伸,此控制項類似一

個右邊含有下拉鈕的 Text 控制項,當你按該下拉紐時,該控制項會往下彈出一個下拉式清單。

Page 24: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-8 日期時間控制項.壹 MonthCalendar 控制項

月曆的建立是先在工具箱中選取 月曆工具,接著在表單內適當位置,壓左鍵並拖曳滑鼠拉出如下圖月曆物件的大小,最後再透過方法來設定月曆的屬性。

Page 25: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-8 日期時間控制項 (續 )二 . DateTimePicker 控制項 Visual C# .NET提供一個非常方便且不佔太大空間用來設定日期的工具 。當你在 DateTimePicker 控制項的下拉鈕上按一下,會彈出如右下圖月曆控制項供你來挑選日期,當你挑選完畢月曆控制項會消失,將挑選的日期顯示在文字框內。

Page 26: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-9 捲軸控制項.壹 HscrollBar/VScrollBar 控制項

在 Visual C# .NET提供了兩種捲軸工具,一為 水平捲軸 (Horizontal Scroll Bar)工具;另一為 垂直捲軸 (Vertical Scroll Bar)工具。

Page 27: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-9 捲軸控制項 (續 )二 . TrackBar 控制項 在 Windows Form工具箱中提供了 軌跡棒工具,它的

功能和捲軸控制項類似,透過它所提供的Maximum 和Minimum 屬性設定軌跡棒在某個範圍內捲動,用來設定或調整輸入值,以防止操作者輸入的數值超出範圍。垂直或水平捲軸高度寬度均可調整,但軌跡棒只允許調整寬度。

Page 28: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-9 捲軸控制項 (續 ) 範 例 調色盤實作 (p7-55)

利用三個 TrackBar 控制項,其名稱分別為: tkbRed 、 tkbGreen 、 tkbGreen代表紅、綠、藍調色棒。其Minimum/Maximum 屬性分別為 0/255。將這三個 TrackerBar 的 TickStyle 屬性依序設為 TopLeft 、 .BottomRight 、 Both 。當軌跡棒移動時,每個軌跡棒正上方都會有一個標籤控制項分別為 lblRed 、 lblGreen 、 lblBlue 用來顯示目前的顏色設定值,同時會將RGB值顯示在正下方的 lblShow標籤控制項內;也會將混色結果顯示在 PicShow 圖片控制項內。

Page 29: 視窗程式設計 Class 4 教師:黃聖方. 第六章 Windows Form ( Part II )

7-9 捲軸控制項 (續 )三 . Splitter 控制項 當你希望能製作出像檔案總管一樣,在執行階段能移動滑鼠到資料夾清單和檔案條列清單兩者中間的邊界間時,會出現左右箭頭游標,此時可以調整資料夾清單的寬度,我們將這個調整棒稱為分隔器 (Splitter) 。這個由工具箱的 控制項產生的。 Splitter 控制項可讓您調整在執行階段可讓使用者調整緊鄰於其停駐順序之前的停駐控制項大小。