Handles 절(Visual Basic)Handles Clause (Visual Basic)

지정된 이벤트를 처리하는 프로시저를 선언합니다.Declares that a procedure handles a specified event.

SyntaxSyntax

proceduredeclaration Handles eventlist  

부분Parts

proceduredeclaration
이벤트를 처리할 프로시저에 대한 Sub 프로시저 선언입니다.The Sub procedure declaration for the procedure that will handle the event.

eventlist
처리할 proceduredeclaration에 대한 이벤트 목록으로, 쉼표로 구분합니다.List of the events for proceduredeclaration to handle, separated by commas. 이벤트는 현재 클래스에 대한 기본 클래스 또는 WithEvents 키워드를 사용하여 선언된 개체에 의해 발생해야 합니다.The events must be raised by either the base class for the current class, or by an object declared using the WithEvents keyword.

설명Remarks

프로시저 선언의 끝에서 Handles 키워드를 사용하여 WithEvents 키워드로 선언된 개체 변수에 의해 발생된 이벤트를 처리합니다.Use the Handles keyword at the end of a procedure declaration to cause it to handle events raised by an object variable declared using the WithEvents keyword. Handles 키워드는 파생 클래스에서 기본 클래스의 이벤트를 처리하는 데도 사용할 수 있습니다.The Handles keyword can also be used in a derived class to handle events from a base class.

Handles 키워드와 AddHandler 문 모두 특정 프로시저에서 특정 이벤트를 처리하도록 지정하는 데 사용할 수 있지만 차이가 있습니다.The Handles keyword and the AddHandler statement both allow you to specify that particular procedures handle particular events, but there are differences. 특정 이벤트를 처리하도록 지정하는 프로시저를 정의할 때 Handles 키워드를 사용합니다.Use the Handles keyword when defining a procedure to specify that it handles a particular event. AddHandler 문은 런타임에 프로시저를 이벤트에 연결합니다.The AddHandler statement connects procedures to events at run time. 자세한 내용은 AddHandler 문을 참조 하세요.For more information, see AddHandler Statement.

사용자 지정 이벤트의 경우 애플리케이션은 이벤트 처리기로 프로시저를 추가할 때 이벤트의 AddHandler 접근자를 호출합니다.For custom events, the application invokes the event's AddHandler accessor when it adds the procedure as an event handler. 사용자 지정 이벤트에 대 한 자세한 내용은 이벤트 문을 참조 하십시오.For more information on custom events, see Event Statement.

예제Example

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 문을 사용하여 기본 클래스의 이벤트를 처리하는 방법을 보여 줍니다.The following example demonstrates how a derived class can use the Handles statement to handle an event from a base class.

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

예제Example

다음 예제에는 WPF 응용 프로그램 프로젝트에 대 한 두 개의 단추 이벤트 처리기가 포함 되어 있습니다.The following example contains two button event handlers for a WPF Application project.

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

예제Example

다음 예제는 이전 예제와 동일합니다.The following example is equivalent to the previous example. Handles 절의 eventlist에는 두 단추에 대한 이벤트가 포함되어 있습니다.The eventlist in the Handles clause contains the events for both buttons.

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

참고 항목See also