Jak wywołać procedurę obsługi zdarzeń w Visual Basic
Zdarzenie jest akcją lub wystąpieniem — takim jak kliknięcie myszą lub przekroczono limit środków — rozpoznawany przez jakiś składnik programu i dla którego można napisać kod, aby odpowiedzieć. Procedura obsługi zdarzeń to kod, który piszesz w celu reagowania na zdarzenie.
Procedura obsługi zdarzeń w Visual Basic jest procedurą Sub
. Jednak zwykle nie nazywa się go tak samo jak inne Sub
procedury. Zamiast tego należy zidentyfikować procedurę jako procedurę obsługi zdarzenia. Można to zrobić za pomocą klauzuli Handles
i zmiennej WithEvents
lub instrukcji AddHandler. Używanie klauzuli Handles
jest domyślnym sposobem deklarowania programu obsługi zdarzeń w Visual Basic. Jest to sposób, w jaki programy obsługi zdarzeń są zapisywane przez projektantów podczas programowania w zintegrowanym środowisku projektowym (IDE). Instrukcja jest odpowiednia AddHandler
do dynamicznego podnoszenia zdarzeń w czasie wykonywania.
Po wystąpieniu zdarzenia program Visual Basic automatycznie wywołuje procedurę obsługi zdarzeń. Każdy kod, który ma dostęp do zdarzenia, może spowodować jego wystąpienie, wykonując instrukcję RaiseEvent.
Można skojarzyć więcej niż jedną procedurę obsługi zdarzeń z tym samym zdarzeniem. W niektórych przypadkach można odciąć skojarzenie programu obsługi ze zdarzenia. Aby uzyskać więcej informacji, zobacz Zdarzenia.
Wywoływanie programu obsługi zdarzeń przy użyciu polecenia Handles i WithEvents
Upewnij się, że zdarzenie zostało zadeklarowane za pomocą instrukcji event.
Zadeklaruj zmienną obiektu na poziomie modułu lub klasy przy użyciu słowa kluczowego
WithEvents
. KlauzulaAs
dla tej zmiennej musi określać klasę, która zgłasza zdarzenie.W deklaracji procedury obsługi
Sub
zdarzeń dodaj klauzulę określającąWithEvents
zmiennąHandles
i nazwę zdarzenia.Po wystąpieniu zdarzenia program Visual Basic automatycznie wywołuje procedurę
Sub
. Kod może użyćRaiseEvent
instrukcji , aby zdarzenie miało miejsce.W poniższym przykładzie zdefiniowano zdarzenie i zmienną
WithEvents
odwołującą się do klasy, która wywołuje zdarzenie. Procedura obsługi zdarzeńSub
używa klauzuli , aby określić klasęHandles
i zdarzenie, które obsługuje.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
Wywoływanie programu obsługi zdarzeń przy użyciu programu AddHandler
Upewnij się, że zdarzenie zostało zadeklarowane za pomocą instrukcji
Event
.Wykonaj instrukcję AddHandler, aby dynamicznie połączyć procedurę obsługi
Sub
zdarzeń ze zdarzeniem.Po wystąpieniu zdarzenia program Visual Basic automatycznie wywołuje procedurę
Sub
. Kod może użyćRaiseEvent
instrukcji , aby zdarzenie miało miejsce.W poniższym przykładzie użyto instrukcji AddHandler w konstruktorze, aby skojarzyć
OnFormClosing
procedurę jako procedurę obsługi zdarzeń dla elementu 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
Można usunąć skojarzenie programu obsługi zdarzeń ze zdarzenia, wykonując instrukcję RemoveHandler.