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