Download presentation
Presentation is loading. Please wait.
1
Yuan-Yu Tsai 蔡淵裕 yytsai@asia.edu.tw 辦公室: HB61
2
2 CHAPTER 5 表單與控制項的使用
3
3 WINDOWS 程式設計基本概念
4
建立 Windows 應用程式- 建立專案 4 專案名稱
5
表單與屬性視窗 5 工具箱:提供所有可 用的 Windows 控制項 表單,可以在表單 上佈置控制項,以 完成系統的功能 方案總管:管理專 案中的每一個檔案 屬性視窗:檢視 或修改物件屬性
6
屬性視窗的操作 6 屬性意義的文字說明 表單和控制項都是一種 元件,這邊顯示出我們 點選的元件的名稱 每個屬性都有 其意義 分類 字母順序
7
以屬性改變表單狀態 7
8
表單的常用屬性 8 常用屬性意義說明 BackColor 取得或設定表單的背景顏色 BackgroundImage 取得或設定表單的背景影像 ( 可以透過設定這個屬性讓表單的 背景是一張圖片 ) FormBorderStyle 取得或設定表單的框線樣式 ( 可以設定表單是否可以放大、縮 小 … 等 ) Icon 取得或設定表單的圖示 ( 表單在標題列左上角的圖示 ) Name 取得或設定表單的名稱 ( 用來辨別每一個表單,就是表單的名 字 ) Opacity 取得或設定表單的透明度等級 ( 其數值可以是從 0 到 1 的任何 數字 ) ShowIcon 取得或設定值 (True/False) ,指出表單的圖示是否會顯示在 表單的標題列中 ShowInTaskbar 取得或設定值 (True/False) ,指出表單是否顯示在 Windows 工作列中
9
表單的常用屬性 9 常用屬性意義說明 StartPosition 取得或設定表單在執行階段中的開始位置 TopMost 取得或設定值 (True/False) ,該值代表是否要將此表單顯示成 最上層的表單。一旦設為最上層顯示,無論如何都不會被其他 表單擋住 Visible 取得或設定值 (True/False) ,指出是否顯示表單 WindowState 取得或設定表單的視窗狀態 ( 放到最大、縮到最小、和一般 )
10
控制項的使用 10 拖曳控制項 到表單上 在表單上『 Double-Click 』 以切換到程式設計模式上
11
11 輸入程式碼 儲存表單與程式 碼之檔案名稱 輸入程式碼
12
12 執行 透過控制項的 事件來運作
13
事件驅動程式設計的觀念 Windows 程式設計是以『事件驅動 (Event-Driven) 』的 方式來運作 在畫面上佈置一個按鈕,並在這個按鈕裡面撰寫程式碼,當 使用者按下這個按鈕時,就執行該按鈕裡面所撰寫的程式碼 使用者按下滑鼠按鈕的動作,便稱之為『事件』,當使用者 按下佈置在表單上的按鈕,就會觸發按鈕的 Click 事件 按鈕控制項之事件 『 Click 』:滑鼠被按下時觸發的事件 『 MouseMove 』:滑鼠從按鈕上移動過去時觸發的事件 『 DoubleClick 』:使用者在滑鼠按鈕上 Double-Click 時觸發 的事件 程式碼即藏身在這種種事件的背後,每觸發一個事件, 就執行一段相對應的程式碼,以完成我們想要的功能 13
14
撰寫控制項 ( 以及表單 ) 事件的方式 14 先點選控制項名稱 再點選事件
15
控制項的屬性、事件、方法 15 意義 屬性 (Property) 透過屬性可以設定控制項的狀態,例 如顯示在其中 ( 或其上 ) 的文字、控制 項的背景顏色、或是其他控制項的 『特徵』 事件 (Event) 我們可以藉由撰寫控制項的事件程式 碼,來處理控制項所發生的事件,這 些事件可能是使用者所造成的 ( 例如按 下按鈕 ) ,或是系統產生的 ( 例如下載 完一個網路上的檔案 - 這也是一種事件 ) 方法 (Method) 方法則是程式碼可以對控制項所進行 的『動作』
16
控制項的屬性、事件、方法 16 EX : CH05-03 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.TextBox1.Focus( ) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.TextBox2.Focus( ) End Sub Focus :駐點,當鍵盤有輸入的動作 時,要由哪一個控制項來處理該動作 ( 意同要作用在哪一個控制項上 )
17
17 WINDOWS 表單的使用與特性
18
加入第二張表單 18
19
顯示第二張表單 EX : CH05-04 Private Sub Button1_Click(ByVal sender As System. Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.Show( ) End Sub 19 在第一個表單上佈置了一個按 鈕,並撰寫程式碼,可透過 Show( ) 方法來顯示一張表單
20
表單的常用事件 20 EX : Form1_Load 事件 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Text = " 第一張表單...“ End Sub Me 就是代表『表單』本身 可以透過 Form_Load 事件 進行表單的初始化設定
21
表單的常用事件 21 EX : Form1_FormClosing 事件 Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If MsgBox(" 您確定要關閉表單 ?", MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.Yes Then e.Cancel = False Else e.Cancel = True End If End Sub 表示要讓 MsgBox 顯示 Yes /No 按鈕,並出現問號的符 號 這段程式碼發生在表單關 閉之前,因此按下關閉表 單的按鈕之後,在關閉之 前會出現此提示訊息 參數 e 的內容會依照不同的 控制項和事件會有所不同
22
表單的事件 22 當一張表單被啟動之後,該表單上的所有控制項, 都會進入待命狀態,不管是使用者透過鍵盤滑鼠對表 單或是控制項進行了動作,而產生了事件,或是控制 項自發性的產生了一些事件,都會有相對應的事件程 式碼被呼叫 一但發生了事件,系統就會去找對應的事件處理 程式碼,並執行相關動作,動作執行完畢之後,又回 復到待命狀態,等待使用者的按鍵或是滑鼠 當在系統中同時建立並且顯示了兩張獨立的表單 時,這兩張表單就會有進入各自的待命狀態,各自的 事件也彼此獨立互不干擾。同樣的如果您一次撰寫了 兩個程式,並且同時執行,每一個獨立程式都會有著 各自的事件,彼此之間也互不干擾,就構成了 Windows 事件的多工運作模式
23
表單的常用事件 23 常用事件意義 Load 發生在表單第一次顯示之前 ( 多用於表單的初始化設定 ) Activated 發生於表單以程式碼或由使用者啟動時 FormClosing 發生於表單關閉之前 FormClosed 發生於表單關閉之後 ( 多半用於程式最後的處理動作,例如釋放 記憶體、關閉檔案 …) KeyDown 當按下按鍵時 ( 多半用於捕捉表單上的鍵盤動作,欲使用此事件 KeyPreview 屬性須先設為 True) KeyPress 當按下按鍵時 ( 欲使用此事件 KeyPreview 屬性須先設為 True) KeyUp 當放開按鍵時 ( 欲使用此事件 KeyPreview 屬性須先設為 True) LostFocus 發生於表單失去駐點時 ResizeBegin 發生於表單進入調整大小模式前 ResizeEnd 發生於表單結束調整大小模式後 ( 多半用於在表單調整過大小之 後,調整表單上的控制項位置 ) Paint 發生於重繪控制項時 ( 多用於有在表單上繪圖,需要更新繪圖內 容時 )
24
表單強制回應特性 24 當這個畫面出現時,除非您先 關閉這個畫面,否則底下的 IE 瀏覽器則無法操作,此為『強 制回應』視窗
25
表單強制回應特性 25 EX : Ch05-06 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.ShowDialog( ) End Sub
26
表單樣式 可以透過表單的「 FormBorderStyle 」屬性 設定,來決定表單要顯示出來的樣式 相關設定參數請參考課本第 5-30 頁 26
27
表單的特殊功能 27 EX : Ch05-06 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.ShowInTaskbar = Not Me.ShowInTaskbar Me.Label1.Text = Me.ShowInTaskbar End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Opacity = Val(Me.TextBox1.Text) / 100 End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.TopMost = Not Me.TopMost Me.Label2.Text = Me.TopMost End Sub 設定表單是否為最上層顯示 設定表單的透明度百分比 設定是否在工作列上顯 示表單名稱
28
28
29
29 控制項的使用方式
30
控制項的佈置與對齊 30 在設計階段,可以輕易的將 控制項拖曳到表單上,而拖曳到 表單上之後,當接近另一個控制 項時,會出現底下這樣的對齊線 條這些對齊線可以讓我們輕鬆的 把控制項對齊到另一個控制項的 邊界上,對於控制項的佈置有相 當大的幫助 或是同時選取若干個控制項並藉由「檢視 → 工具列 → 配置」來進行控 制項佈置設定
31
控制項的錨定 (Anchor) 31
32
控制項的錨定 (Anchor) 32
33
控制項的 Dock 33
34
通用控制項簡介 34
35
按鈕 (Button) 35 基本功能 提供一個可以讓使用者按下的『按鈕』,使用者 可以藉著按下這個按鈕,執行特定的功能或動作 使用時機 當您希望程式中的某些功能,在使用者按下按鈕 之後發生或是執行時,可以利用 Button 控制項來 完成 外觀
36
36 常用屬性值的型別 / 範圍值說明 TextString 預設為 button 設定控制項上的文字 Image System.Drawin g.Image none 設定控制項上的圖示 EnabledBooleanTrue 是否可用 ( 設為 False 時, 控制項為不可點選 ) VisibleBooleanTrue 是否隱藏 ( 設為 False 時, 控制項為隱藏狀態 ) 常用事件說明 Click 按下 Button 後所觸發的事件。 常用方法說明 Focus( ) 將控制項設為目前駐點 (Focus)
37
37 EX : CH05-10 'Button1_Click 事件 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim inputName As String ' 當 Button1_Click 事件發生,會跑出一個需要登入的視窗; 'inputName 為字串變數,會記錄使用者輸入的名字。 inputName = InputBox(" 請輸入姓名: ") ' 判斷 inputName 有沒有等於 'VB' , ' 等於 'VB' 才認為登入的人是合法使用者 If inputName = "VB" Then MsgBox(" 歡迎光臨 !VB!") Else MsgBox(" 錯誤的使用者 ") End If End Sub
38
38
39
標籤 (Label) 39 基本功能 顯示文字 使用時機 當您要讓文字顯示在表單上,且希望使用者不可 以更改時。大多數輸入方塊 (TextBox) 前的提示文 字,都是透過 Label 來完成的 外觀
40
40 常用屬性值的型別 / 範圍值說明 TextString 預設為控制 項本身名稱 設定出現在 Label 中 的文字。 Image System.Drawing.I mage N/A 設定 Label 上的圖示 EnabledBooleanTrue 是否可用 ( 設為 False 時,呈現灰階 狀態 ) VisibleBooleanTrue 是否隱藏 ( 設為 False 時,控制項為 隱藏狀態 ) 常用事件說明 Click 按下 Label 後所觸發的事件。
41
41 EX : Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Label1.Text = " 請輸入姓名: " End Sub 1. 直接透過 Label 的 Text 屬性來設定要顯示的文字 2. 透過程式碼,直接修改 Label 的「 Text 」屬性改變顯示的 文字
42
鏈結標籤 (LinkLabel) 42 基本功能 提供有連結功能且可以點選的 Label 控制項。 使用時機 當您希望程式透過類似超連結的機制,開啟其他 視窗、或是執行其他功能時。 外觀
43
43 常用屬性值的型別 / 範圍值說明 TextString 預設為 button 設定控制項顯示的文字 LinkVisitedBoolean 預設為 False 設定當連結被按過以後,是否 需要改變顏色。 VisitedLink Color System.Drawing.Color N/A 設定連結按過以後呈現的顏色。 EnabledBooleanTrue 按鈕是否可用 ( 設為 False 時,按 紐為不可點選 ) VisibleBooleanTrue 按鈕是否隱藏 ( 設為 False 時,按 紐為隱藏狀態 ) 常用事件說明 LinkClicked 當 LinkLabel 被點選時。 常用方法說明 Focus( ) 將控制項設為目前駐點 (Focus) 。
44
44 EX : Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked ' 當網頁被瀏覽過,更改連結的顏色 LinkLabel1.LinkVisited = True ' 當您已經將不同類型的檔案與系統上安裝的應用程式建立起關聯時, ' 可以用 Process.Start( 路徑 ) 的方法,直接開啟應用程式 Process.Start("http://www.microsoft.com") End Sub
45
文字盒 (Textbox) 45 基本功能 提供一個讓使用者可以輸入資料的文字方塊 使用時機 當您希望藉由輸入資料進行不同處理或運算時 外觀
46
46 常用屬性值的型別 / 範圍值說明 TextString 預設為控制項本身 名稱 設定控制項中顯示 的文字 MultilineBoolean 預設為 False TextBox 是否可以多 行顯示。 ScrollBars 列舉型別 (Both/ Horizontal/ None/ Vertical) 預設為 None 當 TextBox 多行顯示 時的捲軸樣式 ( 常與 Multiline 屬性配合 ) EnabledBooleanTrue 按鈕是否可用 ( 設為 False 時,按鈕為不 可點選 ) VisibleBooleanTrue 按鈕是否隱藏 ( 設為 False 時,按鈕為隱 藏狀態 ) 常用事件說明 TextChanged 當使用者在 TextBox 中鍵入每一個按鍵之後會自動觸發的事件。 Click 在控制項上按下滑鼠後所觸發的事件。 常用方法說明 SelectAll( ) 將控制項中的文字設為被選取的狀態
47
47 EX : Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click MsgBox(Me.TextBox1.Text) End Sub
48
Exercise 請利用上述之各種控制項製作出簡易的計 算機 48
49
49
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.