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

適用対象

こちらもご覧ください