Handles 절(Visual Basic)

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

구문

proceduredeclaration Handles eventlist

부분

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

eventlist처리할 proceduredeclaration에 대한 이벤트 목록으로, 쉼표로 구분합니다. 이벤트는 현재 클래스에 대한 기본 클래스 또는 WithEvents 키워드를 사용하여 선언된 개체에 의해 발생해야 합니다.

설명

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

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

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

예 1

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

예제 2

다음 예에서는 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

예 3

다음 예제는 이전 예제와 동일합니다. 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

참고 항목