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

定義

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

public:
 abstract void SetValue(System::Object ^ component, System::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" メソッドが例外をスローしない場合に渡された値を返すように、プロパティを設計する必要があります。

適用対象

こちらもご覧ください