如何在 Visual Basic 中呼叫事件處理常式
事件是動作或出現次數,例如滑鼠按一下或超過信用額度限制,這是由某些程式元件所辨識,而且您可以撰寫程式碼來回應。 事件處理常式是您撰寫以回應事件的程式碼。
Visual Basic 中的事件處理常式是一個 Sub
程序。 不過,您通常不會以與其他 Sub
程序相同的方式呼叫它。 相反地,您會將程序識別為事件的處理常式。 您可以使用 Handles
子句和 WithEvents
變數,或使用 AddHandler 陳述式來執行此動作。 使用 Handles
子句是在 Visual Basic 中宣告事件處理常式的預設方式。 這是當您在整合式開發環境中 (IDE) 進行程式設計時,設計工具撰寫事件處理常式的方式。 AddHandler
陳述式適用於在執行階段動態引發事件。
事件發生時,Visual Basic 會自動呼叫事件處理常式程序。 具有事件存取權的任何程式碼,都可以藉由執行 RaiseEvent 陳述式來觸發此事件。
您可以將多個事件處理常式與相同的事件產生關聯。 在某些情況下,您可以將處理常式與事件中斷關聯。 如需詳細資訊,請參閱事件。
使用 Handles 和 WithEvents 呼叫事件處理常式
請確定事件是以 Event 陳述式宣告。
使用
WithEvents
關鍵字,在模組或類別層級宣告物件變數。 這個變數的As
子句必須指定引發事件的類別。在事件處理
Sub
的宣告中,加入指定WithEvents
變數和事件名稱的Handles
子句。事件發生時,Visual Basic 會自動呼叫
Sub
程序。 您的程式碼可以使用RaiseEvent
陳述式來讓事件發生。下列範例會定義事件和參考引發事件之類別的
WithEvents
變數。 事件處理Sub
程序會使用Handles
子句來指定類別和它所處理的事件。Public Class RaisesEvent Public Event SomethingHappened() Dim WithEvents happenObj As New RaisesEvent Public Sub ProcessHappen() Handles happenObj.SomethingHappened ' Insert code to handle somethingHappened event. End Sub End Class
使用 AddHandler 呼叫事件處理常式
請確定事件是以
Event
陳述式宣告。執行 AddHandler 陳述式,以動態方式連接事件處理
Sub
程序與事件。事件發生時,Visual Basic 會自動呼叫
Sub
程序。 您的程式碼可以使用RaiseEvent
陳述式來讓事件發生。下列範例會使用建構函式中的 AddHandler 陳述式,將
OnFormClosing
程序關聯為 FormClosing 的事件處理常式。Sub New() InitializeComponent() AddHandler Me.FormClosing, AddressOf OnFormClosing End Sub Private Sub OnFormClosing(sender As Object, e As FormClosingEventArgs) ' Insert code to deal with impending closure of this form. End Sub
您可以藉由執行 RemoveHandler 陳述式,將事件處理常式與事件中斷關聯。