다음을 통해 공유


EventHandler 대리자

이벤트 데이터가 없는 이벤트를 처리할 메서드를 나타냅니다.

네임스페이스: System
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Delegate Sub EventHandler ( _
    sender As Object, _
    e As EventArgs _
)
‘사용 방법
Dim instance As New EventHandler(AddressOf HandlerMethod)
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public delegate void EventHandler (
    Object sender,
    EventArgs e
)
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public delegate void EventHandler (
    Object^ sender, 
    EventArgs^ e
)
/** @delegate */
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public delegate void EventHandler (
    Object sender, 
    EventArgs e
)
JScript에서는 대리자를 사용할 수 있지만 새로 선언할 수는 없습니다.

매개 변수

  • sender
    이벤트 소스입니다.
  • e
    이벤트 데이터가 없는 EventArgs입니다.

설명

.NET Framework의 이벤트 모델은 이벤트와 이벤트 처리기를 연결하는 이벤트 대리자가 있다는 사실을 기초로 만들어졌습니다. 이벤트를 발생시키려면 다음과 같은 두 가지 요소가 필요합니다.

  • 이벤트에 응답하는 메서드를 식별하는 대리자입니다.

  • 이벤트 데이터가 있는 클래스입니다.

대리자는 시그니처 즉, 메서드의 반환 값 형식과 매개 변수 목록 형식을 정의하는 형식입니다. 대리자 형식을 사용하여 대리자와 같은 시그니처가 있는 메서드를 참조할 수 있는 변수를 선언할 수 있습니다.

이벤트 처리기 대리자의 표준 시그니처에서는 값을 반환하지 않는 메서드를 정의합니다. 이 메서드의 첫 번째 매개 변수는 Object 형식이고 이벤트를 발생시키는 인스턴스를 참조하며 두 번째 매개 변수는 EventArgs 형식에서 파생되고 이벤트 데이터를 보유하고 있습니다. 이벤트에서 이벤트 데이터를 생성하지 않으면 두 번째 매개 변수는 EventArgs의 인스턴스입니다. 그렇지 않은 경우 두 번째 매개 변수는 EventArgs에서 파생된 사용자 지정 형식이고 이벤트 데이터를 보유하는 데 필요한 필드나 속성을 제공합니다.

EventHandler는 데이터를 생성하지 않는 이벤트의 이벤트 처리기 메서드만 나타내는 미리 정의된 대리자입니다. 이벤트에서 데이터를 생성하면 사용자 지정 이벤트 데이터 형식을 제공하고 두 번째 매개 변수의 형식이 사용자 지정 형식인 대리자를 만들거나 제네릭 EventHandler 대리자 클래스를 사용하고 제네릭 형식 매개 변수 대신 사용자 지정 형식을 사용해야 합니다.

이벤트를 처리할 메서드와 이벤트를 연결하려면 대리자의 인스턴스를 해당 이벤트에 추가합니다. 대리자를 제거하지 않는 경우 이벤트가 발생할 때마다 이벤트 처리기가 호출됩니다.

이벤트 처리기 대리자에 대한 자세한 내용은 이벤트 및 대리자를 참조하십시오.

항목 위치
방법: ASP.NET 웹 페이지에서 런타임에 이벤트 처리기 동적으로 바인딩 Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: ASP.NET 웹 페이지에서 런타임에 이벤트 처리기 동적으로 바인딩 Visual Studio에서 ASP .NET 웹 응용 프로그램 빌드
방법: ASP.NET 웹 페이지에서 런타임에 이벤트 처리기 동적으로 바인딩 Building ASP .NET Web Applications

예제

다음 코드 예제에서는 이벤트 데이터를 사용하지 않는 이벤트 처리기 대리자의 선언을 보여 줍니다. EventHandler 클래스는 이벤트 대리자의 형식이고 sender는 이벤트를 발생시키는 개체이며 e는 데이터가 없는 이벤트 데이터 개체입니다. 예제에 있는 코드의 두 번째 줄에서는 데이터가 없는 이벤트에 대한 클래스의 이벤트 멤버를 정의합니다.

Delegate Sub EventHandler(sender As Object, e As EventArgs)
   
Public Event NoDataEventHandler As EventHandler
public delegate void EventHandler(Object sender, EventArgs e);
public event EventHandler NoDataEventHandler;
public:
   delegate void EventHandler( Object^ sender, EventArgs^ e );

   event EventHandler^ NoDataEventHandler;
public delegate void EventHandler(Object sender, EventArgs e);

public EventHandler noDataEventHandler = null;

/** @event 
 */
public void add_NoDataEventHandler(EventHandler p)
{
    noDataEventHandler =(EventHandler)System.Delegate.
        Combine(noDataEventHandler, p);
}//add_NoDataEventHandler

/** @event 
 */
public void remove_NoDataEventHandler(EventHandler p)
{
    noDataEventHandler =(EventHandler)System.Delegate.
        Remove(noDataEventHandler, p);
}// remove_NoDataEventHandler

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

System 네임스페이스
EventHandler
EventArgs 클래스
Delegate 클래스

기타 리소스

이벤트 및 대리자