次の方法で共有


ComponentChangedEventHandler デリゲート

ComponentChanged イベントを処理するメソッドを表します。

<Serializable>
<ComVisible(True)>
Public Delegate Sub ComponentChangedEventHandler( _   ByVal sender As Object, _   ByVal e As ComponentChangedEventArgs _)
[C#]
[Serializable]
[ComVisible(true)]
public delegate void ComponentChangedEventHandler(   object sender,   ComponentChangedEventArgs e);
[C++]
[Serializable]
[ComVisible(true)]
public __gc __delegate void ComponentChangedEventHandler(   Object* sender,   ComponentChangedEventArgs* e);

[JScript] JScript では、.NET Framework のデリゲートを利用することができます。ただし、独自に定義することはできません。

パラメータ [Visual Basic, C#, C++]

作成するイベント ハンドラは、ComponentChangedEventHandler クラスのデリゲート定義と同一のパラメータを持つ必要があります。

解説

ComponentChangedEventHandler デリゲートを作成する場合は、イベントを処理するメソッドを識別してください。イベントをイベント ハンドラに関連付けるには、デリゲートのインスタンスをイベントに追加します。デリゲートを削除しない限り、そのイベントが発生すると常にイベント ハンドラが呼び出されます。イベント ハンドラ デリゲートの詳細については、「 イベントとデリゲート 」を参照してください。

フォームの読み込み時またはアンロード時には変更が当然行われるため、これらの処理時には ComponentChanged イベントは発生しません。

使用例

[Visual Basic, C#, C++] ComponentChangedEventHandler の登録と ComponentChanged イベントの処理の例を次に示します。

 
Public Sub LinkComponentChangedEvent(ByVal changeService As IComponentChangeService)
    ' Registers an event handler for the ComponentChanged event.
    AddHandler changeService.ComponentChanged, AddressOf Me.OnComponentChanged
End Sub

Private Sub OnComponentChanged(ByVal sender As Object, ByVal e As ComponentChangedEventArgs)
    ' Displays changed component information on the console.            
    Console.WriteLine(("Type of the component that has changed: " + e.Component.GetType().FullName))
    Console.WriteLine(("Name of the member of the component that has changed: " + e.Member.Name))
    Console.WriteLine(("Old value of the member: " + e.OldValue.ToString()))
    Console.WriteLine(("New value of the member: " + e.NewValue.ToString()))
End Sub

[C#] 
public void LinkComponentChangedEvent(IComponentChangeService changeService)
{
    // Registers an event handler for the ComponentChanged event.
    changeService.ComponentChanged += new ComponentChangedEventHandler(this.OnComponentChanged);            
}

private void OnComponentChanged(object sender, ComponentChangedEventArgs e)
{
    // Displays changed component information on the console.
    Console.WriteLine("Type of the component that has changed: "+e.Component.GetType().FullName);      
    Console.WriteLine("Name of the member of the component that has changed: "+e.Member.Name);            
    Console.WriteLine("Old value of the member: "+e.OldValue.ToString());
    Console.WriteLine("New value of the member: "+e.NewValue.ToString());
}

[C++] 
public:
    void LinkComponentChangedEvent(IComponentChangeService* changeService)
    {
        // Registers an event handler for the ComponentChanged event.
        changeService->ComponentChanged += new ComponentChangedEventHandler(this, &ComponentChangedEventHandlerExample::OnComponentChanged);
    }

private:
    void OnComponentChanged(Object* /*sender*/, ComponentChangedEventArgs* e)
    {
        // Displays changed component information on the console.
        Console::WriteLine(S"Type of the component that has changed: {0}", e->Component->GetType()->FullName);
        Console::WriteLine(S"Name of the member of the component that has changed: {0}", e->Member->Name);
        Console::WriteLine(S"Old value of the member: {0}", e->OldValue);
        Console::WriteLine(S"New value of the member: {0}", e->NewValue);
    }

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

必要条件

名前空間: System.ComponentModel.Design

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

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

参照

System.ComponentModel.Design 名前空間 | ComponentChanged | ComponentChanging | ComponentChangedEventArgs | IComponentChangeService