EventArgs クラス

EventArgs は、イベント データが格納されているクラスの基本クラスです。

この型のすべてのメンバの一覧については、EventArgs メンバ を参照してください。

System.Object
   System.EventArgs
      派生クラス

<Serializable>
Public Class EventArgs
[C#]
[Serializable]
public class EventArgs
[C++]
[Serializable]
public __gc class EventArgs
[JScript]
public
   Serializable
class EventArgs

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

このクラスにはイベント データは格納されません。このクラスは、イベントの発生時にステータス情報をイベント ハンドラに渡さないイベントによって使用されます。イベント ハンドラがステータス情報を必要とする場合、アプリケーションは、そのデータを保持するために、このクラスからクラスを派生させる必要があります。

たとえば、 System.AssemblyLoadEventArgs クラスは、アセンブリ読み込みイベントのデータを保持するために使用され、読み込まれたアセンブリを記述する System.Reflection.Assembly を格納します。

イベントの詳細については、「 イベントのチュートリアル 」および EventHandler のトピックを参照してください。

使用例

[Visual Basic, C#, C++] EventArgs の使用方法については、次のコード例を参照してください。

[Visual Basic, C#, C++] この例では、FireEventArgs が EventArgs から派生したイベント引数の集合になっています。ActivateFireAlarm を呼び出してイベントが発生すると、FireEventHandler に渡されます。

 
Imports System

 _

' FireEventArgs: a custom event inherited from EventArgs.

Public Class FireEventArgs
   Inherits EventArgs
   
   Public Sub New(room As String, ferocity As Integer)
      Me.room = room
      Me.ferocity = ferocity
   End Sub 'New
   
   ' The fire event will have two pieces of information-- 
   ' 1) Where the fire is, and 2) how "ferocious" it is. 
 
   Public room As String
   Public ferocity As Integer
End Class 'FireEventArgs
 _ 
'end of class FireEventArgs

Public Class FireAlarm
   
   ' Events are handled with delegates, so we must establish a FireEventHandler
   ' as a delegate:

   Delegate Sub FireEventHandler(sender As Object, fe As FireEventArgs)
   
   ' Now, create a public event "FireEvent" whose type is our FireEventHandler delegate.

   Public Event FireEvent As FireEventHandler
   
   
   ' This will be the starting point of our event-- it will create FireEventArgs,
   ' and then raise the event, passing FireEventArgs.

   Public Sub ActivateFireAlarm(room As String, ferocity As Integer)
      
      Dim fireArgs As New FireEventArgs(room, ferocity)
      
      '  Now, raise the event by invoking the delegate. Pass in 
      '  the object that initated the event (Me) as well as FireEventArgs. 
      '  The call must match the signature of FireEventHandler.

      RaiseEvent FireEvent(Me, fireArgs)

   End Sub 'ActivateFireAlarm
End Class 'FireAlarm

' The following event will be the EventHandler.
 
Class FireHandlerClass
   
   
   ' Create a FireAlarm to handle and raise the fire events. 

   Public Sub New(fireAlarm As FireAlarm)
      
      ' Add a delegate containing the ExtinguishFire function to the class'
      ' event so that when FireAlarm is raised, it will subsequently execute 
      ' ExtinguishFire.

      AddHandler fireAlarm.FireEvent, AddressOf ExtinguishFire

   End Sub 'New
   
   
   ' This is the function to be executed when a fire event is raised.
   
   Sub ExtinguishFire(sender As Object, fe As FireEventArgs)
     
      Console.WriteLine() 
      Console.WriteLine("The ExtinguishFire function was called by {0}.", sender.ToString())
      
      ' Now, act in response to the event.

      If fe.ferocity < 2 Then
         Console.WriteLine("This fire in the {0} is no problem.  I'm going to pour some water on it.", fe.room)
      Else
         If fe.ferocity < 5 Then
            Console.WriteLine("Using Fire Extinguisher to put out the fire in the {0}.", fe.room)
         Else
            Console.WriteLine("The fire in the {0} is out of control.  I'm calling the fire department.", fe.room)
         End If
      End If 'end of class FireHandlerClass
   End Sub 'ExtinguishFire
End Class 'FireHandlerClass

Public Class FireEventTest
   
   Public Shared Sub Main()
      
      ' Create an instance of the class that will be raising the event.
      Dim myFireAlarm As New FireAlarm()
      
      ' Create an instance of the class that will be handling the event. Note that 
      ' it receives the class that will fire the event as a parameter. 

     Dim myFireHandler As New FireHandlerClass(myFireAlarm)
        
      ' Now, use the FireAlarm class to raise a few events. 

      myFireAlarm.ActivateFireAlarm("Kitchen", 3)
      myFireAlarm.ActivateFireAlarm("Study", 1)
      myFireAlarm.ActivateFireAlarm("Porch", 5)
      
      Return
   End Sub 'Main 'end of main
End Class 'FireEventTest ' end of FireEventTest

[C#] 

using System;

// FireEventArgs: a custom event inherited from EventArgs.

public class FireEventArgs: EventArgs {
    public FireEventArgs(string room, int ferocity) {
        this.room = room;
        this.ferocity = ferocity;
    }

    // The fire event will have two pieces of information-- 
    // 1) Where the fire is, and 2) how "ferocious" it is.  

    public string room;
    public int ferocity;

}    //end of class FireEventArgs


// Class with a function that creates the eventargs and initiates the event
public class FireAlarm {

    // Events are handled with delegates, so we must establish a FireEventHandler
    // as a delegate:

    public delegate void FireEventHandler(object sender, FireEventArgs fe);

    // Now, create a public event "FireEvent" whose type is our FireEventHandler delegate. 

    public event FireEventHandler FireEvent;    

    // This will be the starting point of our event-- it will create FireEventArgs,
    // and then raise the event, passing FireEventArgs. 

    public void ActivateFireAlarm(string room, int ferocity) {

        FireEventArgs fireArgs = new FireEventArgs(room, ferocity);

        // Now, raise the event by invoking the delegate. Pass in 
        // the object that initated the event (this) as well as FireEventArgs. 
        // The call must match the signature of FireEventHandler.

        FireEvent(this, fireArgs); 
    }
}    // end of class FireAlarm


// Class which handles the event

class FireHandlerClass {

    // Create a FireAlarm to handle and raise the fire events. 

    public FireHandlerClass(FireAlarm fireAlarm)    {

        // Add a delegate containing the ExtinguishFire function to the class'
        // event so that when FireAlarm is raised, it will subsequently execute 
        // ExtinguishFire.

        fireAlarm.FireEvent += new FireAlarm.FireEventHandler(ExtinguishFire);
    }

    // This is the function to be executed when a fire event is raised. 
 
    void ExtinguishFire(object sender, FireEventArgs fe) {

        Console.WriteLine("\nThe ExtinguishFire function was called by {0}.", sender.ToString());

        // Now, act in response to the event.

        if (fe.ferocity < 2)
            Console.WriteLine("This fire in the {0} is no problem.  I'm going to pour some water on it.", fe.room);
        else if (fe.ferocity < 5)
            Console.WriteLine("I'm using FireExtinguisher to put out the fire in the {0}.",  fe.room);
        else 
            Console.WriteLine("The fire in the {0} is out of control.  I'm calling the fire department!", fe.room);
    }
}    //end of class FireHandlerClass

public class FireEventTest {
    public static void Main ()     {    

        // Create an instance of the class that will be firing an event.

        FireAlarm myFireAlarm = new FireAlarm();
        
        // Create an instance of the class that will be handling the event. Note that 
        // it receives the class that will fire the event as a parameter. 

        FireHandlerClass myFireHandler = new FireHandlerClass(myFireAlarm);
        
        //use our class to raise a few events and watch them get handled
        myFireAlarm.ActivateFireAlarm("Kitchen", 3);
        myFireAlarm.ActivateFireAlarm("Study", 1);
        myFireAlarm.ActivateFireAlarm("Porch", 5);
        
        return;

    }    //end of main

}    // end of FireEventTest


[C++] 

#using <mscorlib.dll>
using namespace System;

// FireEventArgs: a custom event inherited from EventArgs.

public __gc class FireEventArgs: public EventArgs {
public:
   FireEventArgs(String* room, int ferocity) {
      this->room = room;
      this->ferocity = ferocity;
   }

   // The fire event will have two pieces of information-- 
   // 1) Where the fire is, and 2) how "ferocious" it is.  

   String* room;
   int ferocity;

};    //end of class FireEventArgs


// Class with a function that creates the eventargs and initiates the event
public __gc class FireAlarm {

   // Events are handled with delegates, so we must establish a FireEventHandler
   // as a delegate:

public:
   __delegate void FireEventHandler(Object* sender, FireEventArgs* fe);

   // Now, create a public event "FireEvent" whose type is our FireEventHandler delegate. 

   __event FireEventHandler* FireEvent;    

   // This will be the starting point of our event-- it will create FireEventArgs,
   // and then raise the event, passing FireEventArgs. 

   void ActivateFireAlarm(String* room, int ferocity) {

      FireEventArgs* fireArgs = new FireEventArgs(room, ferocity);

      // Now, raise the event by invoking the delegate. Pass in 
      // the object that initated the event (this) as well as FireEventArgs. 
      // The call must match the signature of FireEventHandler.

      FireEvent(this, fireArgs); 
   }
};    // end of class FireAlarm


// Class which handles the event

__gc class FireHandlerClass {

   // Create a FireAlarm to handle and raise the fire events. 

public:
   FireHandlerClass(FireAlarm* fireAlarm)    {

      // Add a delegate containing the ExtinguishFire function to the class'
      // event so that when FireAlarm is raised, it will subsequently execute 
      // ExtinguishFire.

      fireAlarm->FireEvent += new FireAlarm::FireEventHandler(this, &FireHandlerClass::ExtinguishFire);
   }

   // This is the function to be executed when a fire event is raised. 

   void ExtinguishFire(Object* sender, FireEventArgs* fe) {

      Console::WriteLine(S"\nThe ExtinguishFire function was called by {0}.", sender);

      // Now, act in response to the event.

      if (fe->ferocity < 2)
         Console::WriteLine(
            S"This fire in the {0} is no problem.  I'm going to pour some water on it.",
            fe->room);
      else if (fe->ferocity < 5)
         Console::WriteLine(
            S"I'm using FireExtinguisher to put out the fire in the {0}.",
            fe->room);
      else 
         Console::WriteLine(
            S"The fire in the {0} is out of control.  I'm calling the fire department!",
            fe->room);
   }
};    //end of class FireHandlerClass

int main ()     {    

   // Create an instance of the class that will be firing an event.

   FireAlarm* myFireAlarm = new FireAlarm();

   // Create an instance of the class that will be handling the event. Note that 
   // it receives the class that will fire the event as a parameter. 

   FireHandlerClass* myFireHandler = new FireHandlerClass(myFireAlarm);

   //use our class to raise a few events and watch them get handled
   myFireAlarm->ActivateFireAlarm(S"Kitchen", 3);
   myFireAlarm->ActivateFireAlarm(S"Study", 1);
   myFireAlarm->ActivateFireAlarm(S"Porch", 5);

}    //end of main

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

EventArgs メンバ | System 名前空間