AddHandler 문
런타임에 이벤트를 이벤트 처리기와 연결합니다.
구문
AddHandler event, {AddressOf eventhandler | expression }
부분
요소 | 설명 |
---|---|
event |
처리할 이벤트의 이름입니다. |
eventhandler |
이벤트를 처리하는 프로시저의 이름입니다. |
expression |
이벤트를 처리하는 람다 식입니다. |
AddressOf eventhandler
및 expression
부분은 상호 배타적입니다.
설명
AddHandler
및 RemoveHandler
문을 사용하면 프로그램 실행 중 언제든지 이벤트 처리를 시작하고 중지할 수 있습니다.
새 이벤트 처리기(eventhandler
프로시저 또는 expression
람다)의 서명은 이벤트 event
의 서명과 일치해야 합니다.
Handles
키워드와 AddHandler
문 모두 특정 프로시저에서 특정 이벤트를 처리하도록 지정하는 데 사용할 수 있지만 차이가 있습니다. AddHandler
문은 런타임에 프로시저를 이벤트에 연결합니다. 특정 이벤트를 처리하도록 지정하는 프로시저를 정의할 때 Handles
키워드를 사용합니다. 자세한 내용은 핸들을 참조하세요.
명시적인 람다로 추가된 처리기는 나중에 제거할 수 없습니다(RemoveHandler
사용). 실제로 람다에 이름이 지정되지 않으면 나중에 참조할 수 없습니다. 그러나 람다를 변수에 할당하고 이 변수를 통해 처리기를 추가하면 이 변수를 사용하는 처리기를 제거할 수 있습니다.
참고 항목
사용자 지정 이벤트의 경우 AddHandler
문은 이벤트의 AddHandler
접근자를 호출합니다. 사용자 지정 이벤트에 대한 자세한 내용은 Event 문을 참조하세요.
예시
Sub TestEvents()
Dim Obj As New Class1
' Associate an event handler with an event.
AddHandler Obj.Ev_Event, AddressOf EventHandler
' Call the method to raise the event.
Obj.CauseSomeEvent()
' Stop handling events.
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
' This event will not be handled.
Obj.CauseSomeEvent()
' Associate an event handler with an event, using a lambda.
' This handler cannot be removed.
AddHandler Obj.Ev_Event, Sub ()
MsgBox("Lambda caught event.")
End Sub
' This event will be handled by the lambda above.
Obj.CauseSomeEvent()
End Sub
Sub EventHandler()
' Handle the event.
MsgBox("EventHandler caught event.")
End Sub
Public Class Class1
' Declare an event.
Public Event Ev_Event()
Sub CauseSomeEvent()
' Raise an event.
RaiseEvent Ev_Event()
End Sub
End Class
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET