PropertyDescriptor.SetValue(Object, Object) メソッド

定義

派生クラスでオーバーライドされた場合、コンポーネントの値を別の値に設定します。

public:
 abstract void SetValue(System::Object ^ component, System::Object ^ value);
public abstract void SetValue (object component, object value);
public abstract void SetValue (object? component, object? value);
abstract member SetValue : obj * obj -> unit
Public MustOverride Sub SetValue (component As Object, value As Object)

パラメーター

component
Object

設定する対象のプロパティ値を持つコンポーネント。

value
Object

新しい値。

注釈

通常、このメソッドはリフレクションによって実装されます。

このメソッドは、次 DesignerTransaction の順序で を自動的に作成します。

  1. メソッドは、 メソッドを IDesignerHost.CreateTransaction 呼び出して、変更を表 DesignerTransaction す新しい を作成します。

  2. メソッドは、 メソッド IComponentChangeService.OnComponentChanging を呼び出して、トランザクションが開始され、変更が発生する可能性を示します。

  3. メソッドは、 プロパティを、このメソッドのチェック順序によって決定された値にリセットします。

  4. メソッドは、 メソッドを IComponentChangeService.OnComponentChanged 呼び出して、変更が発生したかどうかを示します。

  5. メソッドは を呼 DesignerTransaction.Commit び出して、トランザクションが完了したかどうかを示します。

トランザクションの目的は、 と の機能 UndoRedo サポートする目的です。

注意 (実装者)

このメソッドをオーバーライドする場合は、実装する必要がある適切な "SetMyProperty" メソッドを呼び出して、 プロパティの値を設定する必要があります。 指定された値が有効でない場合、コンポーネントは例外をスローし、渡されます。 "SetMyProperty" メソッドに続く "GetMyProperty" メソッド (実装している) が、"SetMyProperty" メソッドが例外をスローしない場合に渡された値を返すよう、 プロパティを設計する必要があります。

適用対象

こちらもご覧ください