相對來說,事件的使用是比較簡單的。在使用前,我們必須先定義該事件,這意味著要通知VisualBasic什麼事件被呼叫。一個事件可能有自己的參數,例如,一個Command按鈕有一個Click(單擊)事件,它沒有參數。另外,文字編輯框有KeyPRess事件,它透過一個叫做"KeyAscii"的值來處理相關內容。
定義一個事件是在一個類別的通用聲明部分中添加類似下面的程式碼:
然後在程式碼呼叫RaiseEvent方法來激發一個事件。就像下面的程式碼一樣:
為了更好地說明上述添加和激發事件的過程,我們舉一個例子。首先,定義一個事件:
在CDog類別的通用聲明部分中新增下列程式碼:
在CDog類別中加入Sleep子過程:
程式碼中,一開始做一些1000000次無用的循環,電腦短暫停頓後,Sleep子過程激發Awake事件。
但Awake事件產生後,我們該讓程式作對應的反應呢?當然,利用指令按鈕是最簡單的,只要在程式碼視窗的清單中選擇指令按鈕物件。
但是那樣的話,我們必然需要一個控件,而且所見的內容都在表單上。這裡我們純粹使用對應的程式碼,而且是看不見的。
當然用程式碼來接收事件,還需要額外的操作:
在表單程式碼視窗中的通用聲明部分,新增下列程式碼:
程式碼不同於先前的MyDog聲明,它有個關鍵字WithEvents用來通知VisualBasic該物件可以按收任何事件,而且該物件必須接收事件。
刪除命令按鈕中的所有程式碼;並在Command1中加入下列程式碼:
程式碼簡單地將MyDog設定成CDog的一個新的實例,設定Name後,呼叫Bark,最後執行Sleep子過程。
現在加入一些程式碼來對應Awake事件。
在Form程式碼視窗中,從物件下拉清單中選擇"MyDog";
在"MyDog"的"Awake"事件中,加入下列程式碼:
好了,現在就可以測試了。
按F5運行程序;
點選Command按鈕;
這樣,當小狗Bark後,開始打盹,最後結束時還被你叫醒。真是神奇!
->