다음을 통해 공유


Handles 절(Visual Basic)

프로시저가 지정된 이벤트를 처리하도록 선언합니다.

proceduredeclaration Handles eventlist

요소

  • proceduredeclaration
    이벤트를 처리할 프로시저에 대한 Sub 프로시저 선언입니다.

  • eventlist
    처리할 proceduredeclaration의 이벤트를 콤마로 구분한 목록. 이 이벤트는 현재 클래스에 대한 기본 클래스를 발생시키거나 WithEvents 키워드를 사용하여 선언한 개체를 발생시켜야 합니다.

설명

프로시저 선언의 끝 부분에서 Handles 키워드를 사용하면 WithEvents 키워드를 사용하여 선언한 개체 변수로 발생시킨 이벤트를 처리하도록 할 수 있습니다. Handles 키워드를 파생 클래스에 사용하여 기본 클래스의 이벤트를 처리할 수도 있습니다.

프로시저 시그니처는 eventlist의 각 이벤트 시그니처와 일치해야 합니다.

Handles 키워드 및 AddHandler 문을 사용하여 특정 프로시저가 특정 이벤트를 처리하도록 지정할 수 있지만 둘 사이에는 차이점이 있습니다. Handles 키워드는 특정 이벤트를 처리하는 프로시저를 정의할 때 사용됩니다. AddHandler 문은 런타임에 프로시저를 이벤트에 연결합니다. 자세한 내용은 AddHandler 문를 참조하십시오.

사용자 지정 이벤트의 경우 응용 프로그램은 프로시저를 이벤트 처리기로 추가할 때 이벤트의 AddHandler 접근자를 호출합니다. 사용자 지정 이벤트에 대한 자세한 내용은 Event 문을 참조하십시오.

예제

Public Class ContainerClass
    ' Module or class level declaration. 
    WithEvents Obj As New Class1

    Public Class Class1
        ' Declare an event. 
        Public Event Ev_Event()
        Sub CauseSomeEvent()
            ' Raise an event. 
            RaiseEvent Ev_Event()
        End Sub 
    End Class 

    Sub EventHandler() Handles Obj.Ev_Event
        ' Handle the event.
        MsgBox("EventHandler caught event.")
    End Sub 

    ' Call the TestEvents procedure from an instance of the ContainerClass  
    ' class to test the Ev_Event event and the event handler. 
    Public Sub TestEvents()
        Obj.CauseSomeEvent()
    End Sub 
End Class

다음 예제는 파생 클래스가 Handles 문을 사용하여 기본 클래스의 이벤트를 처리하는 방법을 보여 줍니다.

Public Class BaseClass
    ' Declare an event. 
    Event Ev1()
End Class 
Class DerivedClass
    Inherits BaseClass
    Sub TestEvents() Handles MyBase.Ev1
        ' Add code to handle this event. 
    End Sub 
End Class

다음 예제에는 WPF 응용 프로그램 프로젝트에 대한 두 개의 단추 이벤트 처리기가 포함되어 있습니다.

Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
    MessageBox.Show(sender.Name & " clicked")
End Sub 

Private Sub Button2_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button2.Click
    MessageBox.Show(sender.Name & " clicked")
End Sub

다음 예제는 위의 예제와 동일합니다. Handles 절의 eventlist에는 두 단추의 이벤트가 들어 있습니다.

Private Sub Button_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click, Button2.Click
    MessageBox.Show(sender.Name & " clicked")
End Sub

참고 항목

참조

WithEvents(Visual Basic)

AddHandler 문

RemoveHandler 문

Event 문

RaiseEvent 문

기타 리소스

이벤트(Visual Basic)