為了演示這一點,讓我們創(chuàng)建一個帶有兩個按鈕控件的視窗(form),這兩個按鈕分別為:Button1和Button2。VB.NET自動為它們分別創(chuàng)建了兩個事件代表,即Button1_Clicked and Button2_Clicked,代碼如下所示。注意在申明的末尾使用到了一個關(guān)鍵字:Handles,它把代表登記到事件源上。
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVale As System.EventArgs) _
HandlesButton1.Click
MsgBox("Button1_Click")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVale As System.EventArgs) _
HandlesButton2.Click
MsgBox("Button2_Click")
End Sub
你可以通過對同一個事件源創(chuàng)建新的子程序來建立自己的代表。在申明的結(jié)尾,用關(guān)鍵字Handles把代表連接到你想處理的事件上,一個代表可以連接到多個事件上(用逗號格開),如下面的代碼所示:
Private Sub Test(ByVal sender As System.Object, _
ByVale As System.EventArgs) _
HandlesButton1.Click, Button2.Click
MsgBox("Test")
End Sub
在這個例子中,每次點擊Button1按鈕,就會顯示兩個消息框,一個顯示“Button1_Click”、另一個顯示“Test”。當(dāng)點擊Button2,出現(xiàn)的兩個消息框分別顯示“Button2_Click”和“Test”。不過,這兩個消息框出現(xiàn)的先后次序(即事件處理函數(shù)的調(diào)用次序)不定。
通過使用關(guān)鍵字Handles,你可以讓單個子程序處理多個控件的事件,也可以讓單個控件事件有多個子程序。