다음을 통해 공유


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 변수를 사용하면 하나의 이벤트 처리기가 한 종류 이상의 이벤트를 처리하거나 하나 이상의 이벤트 처리기가 같은 종류의 이벤트를 처리할 수 있습니다.

참고 항목

개념

AddHandler 및 RemoveHandler

참조

Handles

WithEvents

AddHandler 문