Presentation is loading. Please wait.

Presentation is loading. Please wait.

第9章 視窗應用程式的事件處理 9-1 事件的基礎 9-2 表單事件 9-3 滑鼠事件 9-4 鍵盤事件 9-5 表單的鍵盤事件

Similar presentations


Presentation on theme: "第9章 視窗應用程式的事件處理 9-1 事件的基礎 9-2 表單事件 9-3 滑鼠事件 9-4 鍵盤事件 9-5 表單的鍵盤事件"— Presentation transcript:

1 第9章 視窗應用程式的事件處理 9-1 事件的基礎 9-2 表單事件 9-3 滑鼠事件 9-4 鍵盤事件 9-5 表單的鍵盤事件
9-6 控制項的事件

2 9-1 事件的基礎 9-1-1 認識事件 9-1-2 建立事件處理程序 9-1-3 共用事件處理程序

3 9-1-1 認識事件-說明 「事件」(Event)是在執行視窗應用程式時,滑鼠、鍵盤或表單載入時等操作所觸發的一些動作。
例如:將應用程式視為一輛公共汽車,公車依照行車路線在馬路上行駛,事件是在行駛過程中發生的一些動作,如下所示: 看到馬路上的紅綠燈。 乘客上車、投幣和下車。 例如:看到站牌有乘客準備上車時,乘客上車的事件就觸發,司機知道需要路邊停車和開啟車門。

4 9-1-1 認識事件-圖例 回到本章主題,Visual Basic視窗應用程式的事件處理是一種委託事件處理模型,分為出版者(Publisher)即引發事件的控制項或物件;「訂閱者」(Subscriber)是訂閱此事件,負責來處理此事件的物件,如右圖所示:

5 9-1-2 建立事件處理程序-建立方法 在表單設計視窗按二下控制項來建立預設的事件處理程式。
不是預設事件,可以在程式碼編輯視窗選取【類別名稱】的控制項後,在【方法名稱】選擇指定的事件。

6 9-1-2 建立事件處理程序-預設事件 表單和控制項預設的事件處理程序,如下表所示:

7 9-1-3 共用事件處理程序-說明 Windows應用程式的多個控制項可以共用同一個事件處理程序,如果控制項的處理程序內容都大同小異,我們可以建立共用的事件處理程序,用來處理不同控制項所產生的事件。

8 9-1-3 共用事件處理程序-範例 例如:在表單上擁有Button1和Button2按鈕控制項,我們可以只建立Button1_Click()事件處理程序,讓它同時處理2個按鈕的Click事件,如下所示: Private Sub Button1_Click(sender As _ Object, e As EventArgs) _ Handles Button1.Click, Button2.Click ……….. End Sub

9 9-1-3 共用事件處理程序- Visual Basic專案
Visual Basic專案:Ch9-1-3 在Windows應用程式建立2個按鈕控制項共用Button1_Click()事件處理程序,控制項模擬2張樸克牌,其點數由亂數產生,按一下可以顯示點數,我們可以猜測2張牌中,哪一張牌的點數比較大,如下圖所示:

10 9-2 表單事件-說明 Visual Basic建立的Windows應用程式是由表單物件所組成,當應用程式載入表單時,即會觸發一系列表單事件。 事實上,載入表單、調整視窗尺寸和關閉表單的過程,都會觸發一系列事件。

11 9-2 表單事件-常用事件 常用的表單事件,如下表所示:

12 9-2 表單事件-Visual Basic專案 Visual Basic專案:Ch9-2
在Windows應用程式表單顯示表單事件的觸發過程,在載入表單後,當使用者調整視窗尺寸、作用中視窗、非作用中視窗和關閉視窗時,都可以看到觸發的表單事件,如下圖所示:

13 9-3 滑鼠事件 9-3-1 Click與DoubleClick事件 9-3-2 MouseUp和MouseDown事件
9-3-3 MouseEnter、MouseMove和MouseLeave事件

14 9-3 滑鼠事件 滑鼠事件是在表單或控制項上操作滑鼠時,移動、按一下和按二下等操作所觸發的一系列事件,如下表所示:

15 9-3-1 Click與DoubleClick事件-說明
事實上,觸發Click事件時是依序觸發MouseDown、Click和MouseUp事件;DoubleClick事件會依序觸發MouseDown、Click、DoubleClick和MouseUp事件。

16 9-3-1 Click與DoubleClick事件- 使用Click事件的時機
在Windows應用程式表單和控制項使用Click事件的時機,如下所示: 按下按鈕執行程式碼,在本章前的範例程式都是使用Click事件。 在選項按鈕或核取方塊選取或勾選選項。 將標籤控制項模擬成按鈕控制項按下的功能。

17 9-3-1 Click與DoubleClick事件- 使用DoubleClick事件的時機
DoubleClick事件在表單控制項使用的機會並不多,以目前說明的控制項來說,只有表單、標籤和文字方塊支援DoubleClick事件,第10章的清單方塊和下拉式清單方塊控制項也支援DoubleClick事件。

18 9-3-1 Click與DoubleClick事件- Visual Basic專案
Visual Basic專案:Ch9-3-1 在Windows應用程式建立手機與平板商品銷售和付款的表單,然後測試控制項的Click和文字方塊的DoubleClick事件,它是使用全域變數來處理選項按鈕的選擇 ,如下圖所示:

19 9-3-2 MouseUp和MouseDown事件-說明
MouseUp和MouseDown事件是當使用者按下滑鼠按鍵和放開時,產生的事件。程式碼可以從事件處理程序參數e的MouseEventArgs物件取得使用者按下哪一個按鍵。 物件常用的屬性,如下表所示:

20 9-3-2 MouseUp和MouseDown事件- Visual Basic專案
Visual Basic專案:Ch9-3-2 在Windows應用程式建立一個按鈕控制項,當在表單移動滑鼠游標且按下滑鼠按鍵後,可以分別在表單標題列和控制項顯示按下哪一個按鍵和目前座標,如下圖所示:

21 9-3-3 MouseEnter、MouseMove和MouseLeave事件-說明
MouseEnter和MouseLeave事件是滑鼠進入控制項和離開控制項時產生的事件,我們可以使用這2個事件建立控制項的動畫效果。例如:進入控制項時,背景色彩為紅色,離開時控制項變成綠色。 MouseMove事件是在滑鼠移動時產生的一系列事件,在程式中只需使用此事件,就可以建立滑鼠拖拉控制項的效果,因為需要調整控制項位置,換句話說,我們需要在程式碼取得控制項的座標和尺寸。

22 9-3-3 MouseEnter、MouseMove和MouseLeave事件-屬性
其相關屬性如下表所示:

23 9-3-3 MouseEnter、MouseMove和MouseLeave事件-Visual Basic專案
Visual Basic專案:Ch9-3-3 在Windows應用程式建立一個藍色小方塊的標籤控制項,當滑鼠游標移到標籤中時,背景色彩變成紅色,按下滑鼠左鍵可以拖拉標籤控制項到游標所在位置,如下圖所示:

24 9-4 鍵盤事件 9-4-1 KeyDown和KeyUp事件 9-4-2 KeyPress事件

25 9-4 鍵盤事件-說明 當在文字方塊控制項輸入文字內容時,控制項會觸發一系列鍵盤事件,如下表所示:

26 9-4-1 KeyDown和KeyUp事件-說明
KeyDown和KeyUp事件處理程序是依參數的KeyEventArgs物件屬性來取得按下哪一個按鍵,其相關屬性如下表所示:

27 9-4-1 KeyDown和KeyUp事件- 取得表單實際區域
本節範例程式是使用鍵盤的方向鍵來移動文字方塊,為了避免移出邊界,程式碼使用表單的ClientSize物件取得實際區域的尺寸(去掉標題列和框線的尺寸後),如下所示: Dim maxWidth As Integer = Me.ClientSize.Width Dim maxHeight As Integer = Me.ClientSize.Height 上述程式碼取得表單實際區域的寬和高。

28 9-4-1 KeyDown和KeyUp事件- Visual Basic專案
Visual Basic專案:Ch9-4-1 Windows應用程式類似Ch9-3-3專案,改為使用鍵盤方向鍵移動黃色背景的文字方塊控制項,當使用者按下按鍵,就顯示按鍵碼和是否同時按下Ctrl、Alt和Shift鍵,如下圖所示:

29 9-4-2 KeyPress事件-說明 KeyPress事件是在KeyDown事件之後和KeyUp事件之前觸發,可以使用函數取得按鍵ASCII碼,在事件處理程序傳入的參數是KeyPressEventArgs物件,其相關屬性如下表所示: KeyChar屬性取得的是字元Char,可以使用Asc()函數將字元轉換成ASCII碼。如果需要檢查字元,請使用Chr()函數將ASCII碼轉換成字元。

30 9-4-2 KeyPress事件- Visual Basic專案
Visual Basic專案:Ch9-4-2 在Windows應用程式建立2個文字方塊控制項,一個只允許輸入小寫英文字母;一個只能輸入數字0~9,如下圖所示:

31 9-5 表單的鍵盤事件-啟用 Visual Basic表單在預設情況下,為了避免影響執行效率,並不會觸發鍵盤事件,所以上一節範例程式都是使用TextBox文字方塊控制項來觸發鍵盤事件。 表單如果需要作為回應鍵盤事件的傾聽者物件,請設定表單的KeyPreview屬性為True,如下表所示:

32 Visual Basic的Split()函數可以將字串以指定分隔字串切割成字串陣列,如下所示:
Dim str As String = "This/is/a/book." Dim arrString() As String = Split(str, "/") 上述程式碼傳回以第2個參數"/"來分割第1個參數成為字串陣列,其執行結果相當於宣告字串陣列,如下所示: Dim arrString() As String = _ {"This", "is", "a", "book."}

33 9-5 表單的鍵盤事件- Visual Basic專案
Visual Basic專案:Ch9-5 在Windows應用程式建立簡單的四則計算機,程式開啟表單的鍵盤事件,以便標籤控制項可以模擬文字方塊來輸入運算式。 四則計算機可以顯示一個運算子的完整運算式,例如:在輸入 後,按下等號可以計算結果,操作方式允許按下按鈕或使用鍵盤的數字鍵,如右圖所示:

34 9-6 控制項的事件 9-6-1 文字方塊控制項的 TextChanged事件 9-6-2 核取方塊與選項按鈕的
CheckedChanged事件

35 9-6-1 文字方塊控制項的TextChanged事件- 說明
文字方塊控制項的TextChanged事件是輸入文字過程觸發的事件。它是在KeyDown、KeyPress事件後觸發TextChanged事件,最後是KeyUp事件。 TextChanged事件可以建立動態資料變更,我們可以在輸入資料後,就馬上輸出輸入的內容。事件說明如下表所示:

36 9-6-1 文字方塊控制項的TextChanged事件-Visual Basic專案
Visual Basic專案:Ch9-6-1 在Windows應用程式建立文字方塊和標籤控制項,當在文字方塊輸入文字內容時,可以馬上在標籤顯示輸入的文字內容,如下圖所示:

37 9-6-2 核取方塊與選項按鈕的CheckedChanged事件-說明
核取方塊與選項按鈕擁有CheckedChanged事件,可以建立動態選項的選取,例如:在之前點餐系統,只需配合CheckedChanged事件,就可以在選取餐點後,馬上計算目前的總金額。其說明如下表所示:

38 9-6-2 核取方塊與選項按鈕的CheckedChanged事件-Visual Basic專案
Visual Basic專案:Ch9-6-2 在Windows應用程式建立iPod產品訂購程式,只需勾選商品,馬上就可以顯示訂購數量和總價。選擇自取或貨運後,手續費用也會馬上加到總價中,如下圖所示:

39 End


Download ppt "第9章 視窗應用程式的事件處理 9-1 事件的基礎 9-2 表單事件 9-3 滑鼠事件 9-4 鍵盤事件 9-5 表單的鍵盤事件"

Similar presentations


Ads by Google