WithEvents 및 Handles 절
업데이트: 2007년 11월
WithEvents 문과 Handles 절을 사용하면 이벤트 처리기를 선언하여 지정할 수 있습니다. WithEvents 키워드를 사용하여 선언된 개체가 발생시킨 이벤트는 다음과 같이 이 이벤트에 대한 Handles 문이 포함된 프로시저에서 처리될 수 있습니다.
' Declare a WithEvents variable.
Dim WithEvents EClass As New EventClass
' Call the method that raises the object's events.
Sub TestEvents()
EClass.RaiseEvents()
End Sub
' Declare an event handler that handles multiple events.
Sub EClass_EventHandler() Handles EClass.XEvent, EClass.YEvent
MsgBox("Received Event.")
End Sub
Class EventClass
Public Event XEvent()
Public Event YEvent()
' RaiseEvents raises both events.
Sub RaiseEvents()
RaiseEvent XEvent()
RaiseEvent YEvent()
End Sub
End Class
일반적으로 WithEvents 문과 Handles 절의 선언 구문을 사용하면 이벤트 처리 시 쉽게 코딩, 읽기 및 디버깅할 수 있기 때문에 이벤트 처리기에 대해 WithEvents 문과 Handles 절을 사용하는 것이 가장 좋습니다. 그러나 WithEvents 변수를 사용할 때에는 다음과 같은 제한 사항이 있습니다.
WithEvents 변수를 개체 변수로 사용할 수 없습니다. 즉, 이 변수를 Object로 선언할 수는 없으며 변수 선언 시 클래스 이름을 지정해야 합니다.
공유 이벤트는클래스 인스턴스에 연결되지 않으므로 WithEvents를 사용하여 공유 이벤트를 선언적으로 처리할 수 없습니다. 마찬가지로, WithEvents 또는 Handles을 사용하여 Structure에서 이벤트를 처리할 수 없습니다. 두 경우 모두 AddHandler 문을 사용하여 공유 이벤트를 처리할 수 있습니다.
WithEvents 변수의 배열을 만들 수 없습니다.
WithEvents 변수를 사용하면 하나의 이벤트 처리기가 한 종류 이상의 이벤트를 처리하거나 하나 이상의 이벤트 처리기가 같은 종류의 이벤트를 처리할 수 있습니다.