2-1 基本控制物件的特徵
2-1.1 控制物件『事件』的介紹
事件(Event)代表可被控制物件識別的動作,例如,在表單上按一下滑 鼠左鍵,表單會辨識到使用者的動作,而產生一個稱為 Click(此事件是發生 在按下一個物件,並接著放開滑鼠鍵時)的事件,不同控制物件的事件發生的 原因並不完全相同,我們將在後面作更詳細的介紹。其它較常使用到的事件還 包括:
DbClick 事件:發生在一個物件上『按和放』滑鼠按鈕連續兩次時。
MouseDown 事件:發生在使用者『按下』滑鼠鍵時。
MouseUp 事件:發生在使用者『釋放』滑鼠鍵時。
MouseMove 事件:發生在『移動』滑鼠時。
KeyDown 事件:發生在使用者『按下』鍵盤上一個任意按鍵時。
事件若是按其產生的來源方式,則可概分為以下三類:
使用者事件:使用者操控滑鼠或鍵盤所引起的事件;例如,Click(按
下滑鼠左鍵)所引起的事件。系統事件:作業系統所引起的事件;例如,Timer(定時器)所引起的
事件。程式事件:程式間接引發的事件;例如,程式碼載入表單時,所引發
之 Load(載入)事件。在 Visual Basic 中,程式碼就是以『一個事件對應一個程序』的方式來設 計,因此,當某一事件發生時,事件程序中的程式碼就會被驅動起來執行,所 以我們稱 Visual Basic 具有『事件驅動』(Event-Driven)的特性。
控制物件名稱_事件名稱( )
2
例如:Command1_Click( )代表 Command1 物件的 Click 事件程序,
Command1 為控制物件的名稱,Click 是事件的名稱,而底線符號(“_”)則是 用來建立控制物件與事件的『隸屬關係』,雙括號表示此為程序(即副程式 Subroutine,請參考本書 5-1.1 介紹)。
自動產生 事件程序
事件/程序 方塊 物件名稱 物件方塊 事件名稱
在表單設計階段,利用『檢視物件 』按鈕或是按下 ┼ 按 鈕,皆會自動切換到物件視窗。當我們利用滑鼠雙按任何一個控制物件時,就 會自動進入 Visual Basic 程式碼視窗(如上圖所示),同時會自動產生對應的事 件程序名稱,因此,副程式名稱的宣告(Command1_Click( ))與結束副程式 敘述(End Sub)都不需自行輸入,我們只要在中間部分直接輸入程式碼即可。
其中『物件方塊』用來顯示此表單中的所有物件,而『程序/事件方塊』
可以列出該控制物件所有 Visual Basic 的事件,當您選擇了一個事件,則與事 件名稱相關的事件程序,就會自動顯示在『程式碼』視窗中。所有程序會出現 在一個單一捲軸的清單中,它們是依名稱字母來做排列,您可以從『程式碼』
視窗上端的下拉式清單中選取一個事件程序,此時指標會自動移到所選事件程 序的第一行程式碼上面。
但在不同的控制物件上雙按滑鼠左鍵,所啟動的事件將會有所不同,因為 Visual Basic 會自動以控制物件最常使用的事件,作為進入程式視窗的預設事 件,目的是要省去程式設計者自行點選事件的麻煩,但若不是預設值,則可利 用『事件/程序方塊』自行選擇清單方塊中右邊箭頭。
2
在大多數的事件程序的雙括號內是完全空白(預設),但有些事件程序的 雙括號內卻包含許多內容,該內容即所謂『參數』,例如,在 KeyDown 事件 中,到底使用者是按下鍵盤哪個按鍵,我們可以透過 KeyCode 參數傳遞回來,
而 Shift 參數可以偵測(傳遞)是否『同時』按下 (Shift 傳回“1”)、
(Shift 傳回“2”)、 (Shift 傳回“4”)等按鍵的訊息,如下圖所示:
一般程序
當按下『物件方塊』清單方塊中的右邊箭頭,可顯示此表單中的所有 物件,我們發現除了 Form 控制物件外,最上面還有一個『(一般)』的 選項,當我們選取『(一般)』的選項時,『事件/程序方塊』會自動出 現『(宣告)』選項。
一般程序的程式碼,通常是作為宣告常數、變數以及陣列,或是撰寫 副程式與自訂函數等,一般程序的程式碼都是放置於程式碼的最前面,以 便讓該變數運用在整個專案之中,我們將在後面第四章節詳細介紹使用時 機與方式。
請參閱光碟 EX2-1.1 資料夾內容,練習控制物件的事件使用時機與說明。