VB.NET 2008/VB - 이벤트

이벤트 처리 - 이벤트 추가 및 사용 방법

본클라쓰 2011. 4. 17. 09:44

클래스에 이벤트를 추가하는 방법은 Events 문을 선언하여 이벤트를 클래스에 추가합니다. 선언에는 이벤트 이름과 해당 이벤트에 사용되는 인수가 포함됩니다.

 

클래스에 이벤트를 추가하면 클래스의 개체가 특정 이벤트를 발생시킬 수 있도록 지정하면 된다.

 

클래스에 이벤트를 추가하려면 클래스를 정의하는 클래스 모듈의 선언부에서 Event 문을 사용하여 이벤트와 해당 이벤트에 사용될 인수를 선언한다.

 

Public Event PercentDone(ByVal percent As Single, ByVal cancel As Boolean)

 

 

이벤트의 발생은 RaiseEvent 문을 사용하여 이벤트가 발생되도록 한다.

 

Public Sub RaisePercentDoneEvent()

    RasieEvent PercentDone(100, true)

End Sub

 

 

이벤트 처리기를 만들고 AddHandler 문을 사용하거나 Handles를 사용하여 둘을 연결한다.

 

Public Sub HandlePercentDone(ByVal percent As Single, ByVal cancel As Boolean) Handles PercentDone

    MsgBox("이벤트를 처리합니다!")

End Sub

 

 

이벤트 처리기를 만드는 방법은 이벤트 처리기와 이벤트를 연결하는 방법에 따라 다르다. 이벤트 처리기를 만드는 일반적인 방법은 Handles 키워드를 WithEvents 키워드와 함께 사용하는 것이다. Visual Basic에서는 AddHandler 문을 사용하여 이벤트를 처리하는 또 다른 방법을 제공한다. AddHandler 및 RemoveHandler를 사용하여 특정 이벤트에 대한 이벤트 처리를 동적으로 시작하고 중지할 수 있다. 두 방법 중 어느 하나를 사용할 수 있지만 하나의 이벤트에 대해 WithEvents와 AddHandler를 모두 사용하면 안 된다.

 

 

WithEvents 키워드를 사용하여 이벤트 처리기에서 Handles 절과 함께 사용될 수 있는 클래스 또는 모듈 수준의 개체 변수를 만들 수 있는데 WithEvents 절과 Handles 절을 사용하여 이벤트를 처리하려면 이벤트를 포함하고 있는 단순한 클래스를 만든다.

 

Class Class1

    Public Event AnEvent(ByVal EventNumber As Integer)

End Class

 

 

이벤트를 처리할 클래스 또는 모듈에서 WithEvents 키워드를 사용하여 개체 변수를 해당 이벤트의 소스에 선언한다.

 

Public WithEvents ClassInst As Class1

 

 

Handles 절을 사용하여 이벤트 처리기와 이벤트를 연결합니다.

 

Public Sub ClassInst_AnEvent(ByVal EventNumber As Integer) Handles ClassInst.AnEvent

    MsgBox("Received event number : " & CStr(EventNumber))

End Sub