PropertyDescriptor.SetValue(Object, Object) Methode

Definition

Legt beim Überschreiben in einer abgeleiteten Klasse den Wert der Komponente auf einen anderen Wert fest.

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)

Parameter

component
Object

Die Komponente mit dem Eigenschaftswert, der festgelegt werden soll.

value
Object

Der neue Wert.

Hinweise

In der Regel wird diese Methode durch Reflexion implementiert.

Diese Methode erstellt automatisch DesignerTransaction in der folgenden Reihenfolge:

  1. Die Methode ruft die IDesignerHost.CreateTransaction Methode auf, um eine neue DesignerTransaction zu erstellen, um die Änderungen darzustellen.

  2. Die Methode ruft die IComponentChangeService.OnComponentChanging Methode auf, um anzugeben, dass die Transaktion begonnen hat, und die Änderungen werden ausgeführt.

  3. Die Methode setzt die Eigenschaft auf den Wert zurück, der durch die Überprüfungsreihenfolge dieser Methode bestimmt wird.

  4. Die Methode ruft die IComponentChangeService.OnComponentChanged Methode auf, um anzugeben, dass die Änderungen aufgetreten sind.

  5. Die Methode ruft auf DesignerTransaction.Commit , um anzugeben, dass die Transaktion abgeschlossen ist.

Der Zweck der Transaktion ist die Unterstützung Undo und Redo Funktionalität.

Hinweise für Ausführende

Wenn Sie diese Methode außer Kraft setzen, sollte der Wert der Eigenschaft festgelegt werden, indem Sie die entsprechende "SetMyProperty"-Methode aufrufen, die Sie implementieren müssen. Wenn der angegebene Wert ungültig ist, sollte die Komponente eine Ausnahme auslösen, die übergeben wird. Sie sollten die Eigenschaft so entwerfen, dass eine "GetMyProperty"-Methode (die Sie implementiert haben) nach einer "SetMyProperty"-Methode den übergebenen Wert zurück, wenn die "SetMyProperty"-Methode keine Ausnahme auslöst.

Gilt für

Siehe auch