Volání obslužné rutiny události v jazyce Visual Basic
Událost je akce nebo výskyt , například kliknutí myší nebo překročení limitu kreditu – rozpoznaný nějakou komponentou programu a pro který můžete napsat kód, který má reagovat. Obslužná rutina události je kód, který napíšete pro reakci na událost.
Obslužná rutina události v jazyce Visual Basic je procedura Sub
. Obvykle ho ale nezavoláte stejným způsobem jako jiné Sub
postupy. Místo toho identifikujete proceduru jako obslužnou rutinu události. Můžete to provést buď pomocí Handles
klauzule a WithEvents
proměnné, nebo pomocí příkazu AddHandler. Handles
Použití klauzule je výchozí způsob deklarace obslužné rutiny události v jazyce Visual Basic. To je způsob, jakým obslužné rutiny událostí zapisují návrháři, když programujete v integrovaném vývojovém prostředí (IDE). Příkaz AddHandler
je vhodný pro dynamické generování událostí za běhu.
Když dojde k události, Visual Basic automaticky volá proceduru obslužné rutiny události. Jakýkoli kód, který má přístup k události, může způsobit jeho výskyt spuštěním příkazu RaiseEvent.
Ke stejné události můžete přidružit více než jednu obslužnou rutinu události. V některých případech můžete zrušit přidružení obslužné rutiny k události. Další informace naleznete v tématu Události.
Volání obslužné rutiny události pomocí Handles a WithEvents
Ujistěte se, že je událost deklarována příkazem události.
Deklarujte proměnnou objektu na úrovni modulu nebo třídy pomocí klíčového
WithEvents
slova. KlauzuleAs
pro tuto proměnnou musí určovat třídu, která vyvolá událost.Do deklarace procedury zpracování
Sub
událostí přidejteHandles
klauzuli, která určujeWithEvents
proměnnou a název události.Když dojde k události, Visual Basic automaticky volá proceduru
Sub
. Váš kód může použítRaiseEvent
příkaz k provedení události.Následující příklad definuje událost a proměnnou
WithEvents
, která odkazuje na třídu, která vyvolá událost. Procedura zpracováníSub
událostí používáHandles
klauzuli k určení třídy a události, které zpracovává.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
Volání obslužné rutiny události pomocí rutiny AddHandler
Ujistěte se, že je událost deklarována příkazem
Event
.Spuštěním příkazu AddHandler dynamicky propojíte proceduru zpracování
Sub
událostí s událostí.Když dojde k události, Visual Basic automaticky volá proceduru
Sub
. Váš kód může použítRaiseEvent
příkaz k provedení události.Následující příklad používá AddHandler příkaz v konstruktoru přidružit proceduru
OnFormClosing
jako obslužnou rutinu události pro 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
Obslužnou rutinu události můžete zrušit spuštěním příkazu RemoveHandler.