次の方法で共有


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

適用対象

こちらもご覧ください