1 / 29

第 9 章 視窗應用程式的事件處理

第 9 章 視窗應用程式的事件處理. 9-1 事件的基礎 9-2 表單事件 9-3 滑鼠事件 9-4 鍵盤事件 9-5 表單的鍵盤事件 9-6 控制項的事件. 9-1 事件的基礎. 9-1-1 什麼是事件 9-1-2 建立事件處理程序 9-1-3 共用事件處理程序. 9-1-1 什麼是事件 - 說明. 「事件」( Event )是在執行視窗應用程式時,滑鼠、鍵盤或表單載入時等操作所觸發的一些動作。 例如:將應用程式視為一輛公共汽車,公車依照行車路線在馬路上行駛,事件是在行駛過程中發生的一些動作,如下所示: 看到馬路上的紅綠燈。

misha
Download Presentation

第 9 章 視窗應用程式的事件處理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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視窗應用程式的事件處理是一種於委託事件處理模型,分為「事件來源」(Event Source)引發事件的控制項和處理事件的「傾聽者」(Listener),如下圖所示:

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

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

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

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

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

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

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

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

  13. 9-3-1 Click與DoubleClick事件-說明 • 當使用者以滑鼠在表單或控制項上按一下時,就觸發Click事件,按二下則是觸發DoubleClick事件。 • 事實上,觸發Click事件時是依序觸發MouseDown、Click和MouseUp事件;DoubleClick事件會依序觸發MouseDown、Click、DoubleClick和MouseUp事件。

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

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

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

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

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

  19. 9-4 鍵盤事件 • 9-4-1 KeyDown和KeyUp事件 • 9-4-2 KeyPress事件

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

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

  22. 9-4-2 KeyPress事件 • KeyPress事件是在KeyDown事件之後和KeyUp事件之前觸發,可以使用函數來取得按鍵的ASCII碼,在事件處理程序傳入的參數是KeyPressEventArgs物件,其相關屬性如下表所示:

  23. KeyPress事件 • 在事件程序內使用e.KeyChar取回按鍵值 • EX: • If e.KeyChar=Microsoft.VisualBasic.ChrW(Keys.Return) Then • If e.KeyChar <“0” Or e.KeyChar>”9” Then • If e.KeyChar=vbBack Then ‘按下BackSpace • e.Handled=True 設定按健不置入 TextBox控制項 • 常用按鍵 • Ctrl+A 至 Ctrl+Z (1至26) • Enter (13), Ctrl+Enter (10) • Backspace (8), Ctrl+BackSpace (127) • CapsLock (20) • Windows功能鍵 (91) Apps (93) • Space (32)

  24. KeyPress事件 • e.Alt : 判段是否按下 Alt • e.Shift : 判段是否按下 Shif • e.Control : 判段是否按下 Control • e.Alt : 判段是否按下 Alt • e.KeyCode 取得 ASCII編碼 • e.KeyCode.ToString : 取得按鍵字碼 • 鍵盤九宮格: • Home: 36 ↑:38PgUp: 33 • ← :37 5: 12 →: 39 • End :35 ↓:40 PgDn: 34 • F1(112) F2 (113) …F12 (123)

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

  26. 9-5 表單的鍵盤事件-Split()函數 • 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."}

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

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

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

More Related