次の方法で共有


EventDescriptor クラス

イベントに関する情報を提供します。

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

System.Object
   System.ComponentModel.MemberDescriptor
      System.ComponentModel.EventDescriptor

<ComVisible(True)>
MustInherit Public Class EventDescriptor   Inherits MemberDescriptor
[C#]
[ComVisible(true)]
public abstract class EventDescriptor : MemberDescriptor
[C++]
[ComVisible(true)]
public __gc __abstract class EventDescriptor : public   MemberDescriptor
[JScript]
public
   ComVisible(true)
abstract class EventDescriptor extends MemberDescriptor

スレッドセーフ

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

解説

EventDescriptor は、イベントの名前、属性、関連付ける対象のコンポーネント、イベント デリゲート、デリゲートの型、およびデリゲートがマルチキャストかどうかを示す値で構成されます。

EventDescriptor は、次の抽象 (Visual Basic では MustOverride) プロパティと抽象メソッドを提供します。

  • ComponentType は、イベントが宣言されるコンポーネントの型を格納します。
  • EventType は、イベントのデリゲートの型を格納します。
  • IsMulticast は、イベント デリゲートがマルチキャスト デリゲートかどうかを示す値を格納します。
  • AddEventHandler は、イベントをコンポーネントに関連付けします。
  • RemoveEventHandler は、コンポーネントとデリゲートの関連付けを解除して、デリゲートがコンポーネントからイベントを受信しなくなるようにします。

イベントの詳細については、「 イベントの発生 」を参照してください。リフレクションの詳細については、「 実行時の型情報の探索 」を参照してください。

使用例

[Visual Basic, C#, C++] EventDescriptorCollection クラスの例に基づいて構築されている例を次に示します。テキスト ボックス内のボタンの各イベントに関する情報 (カテゴリ、説明、表示名) を出力します。この例は、button1 と textbox1 がフォーム上でインスタンス化されていることを前提としています。

 
Dim events As EventDescriptorCollection = TypeDescriptor.GetEvents(Button1)
' Displays each event's information in the collection in a text box.
Dim myEvent As EventDescriptor
For Each myEvent In events
    TextBox1.Text &= myEvent.Category & ControlChars.Cr
    TextBox1.Text &= myEvent.Description & ControlChars.Cr
    TextBox1.Text &= myEvent.DisplayName & ControlChars.Cr
Next myEvent

[C#] 
EventDescriptorCollection events = TypeDescriptor.GetEvents(button1);
// Displays each event's information in the collection in a text box.
foreach (System.ComponentModel.EventDescriptor myEvent in events) {
    textBox1.Text += myEvent.Category + '\n';
    textBox1.Text += myEvent.Description + '\n';
    textBox1.Text += myEvent.DisplayName + '\n';
}

[C++] 
EventDescriptorCollection* events = TypeDescriptor::GetEvents(button1);
// Displays each event's information in the collection in a text box.
IEnumerator* myEnum = events->GetEnumerator();
while (myEnum->MoveNext())
{
   EventDescriptor* myEvent = __try_cast<EventDescriptor*>(myEnum->Current);
   textBox1->Text = String::Concat( textBox1->Text, myEvent->Category, S"\n" );
   textBox1->Text = String::Concat( textBox1->Text, myEvent->Description, S"\n" );
   textBox1->Text = String::Concat( textBox1->Text, myEvent->DisplayName, S"\n" );
}

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

必要条件

名前空間: System.ComponentModel

プラットフォーム: 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

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

参照

EventDescriptor メンバ | System.ComponentModel 名前空間 | MemberDescriptor | Attribute