Unterstützung für die Rückgängig-Funktion für Designer bereitstellen

Designer wie Editoren müssen in der Regel Rückgängig-Vorgänge unterstützen, damit Benutzer ihre letzten Änderungen beim Ändern eines Codeelements rückgängig machen können.

Die meisten in Visual Studio implementierten Designer verfügen automatisch über "Rückgängig"-Unterstützung, die von der Umgebung bereitgestellt wird.

Implementierungen im Designer, die Unterstützung für die Rückgängig-Funktion bereitstellen müssen:

Weitere Informationen zum Schreiben von Designern mit .NET Framework finden Sie unter Erweitern Design-Time Support.

Das Visual Studio SDK bietet eine standardmäßige Rückgängig-Infrastruktur, indem es:

Automatisches Abrufen des Rückgängig-Supports

Jeder in Visual Studio erstellte Designer verfügt über eine automatische und vollständige Rückgängig-Funktion, wenn der Designer:

  • Verwendet eine Control basierte Klasse für die Benutzeroberfläche.

  • Verwendet standardmäßiges CodeDOM-basiertes Codegenerierungs- und Analysesystem für die Codegenerierung und Persistenz.

    Weitere Informationen zum Arbeiten mit der Visual Studio CodeDOM-Unterstützung finden Sie unter Dynamische Quellcodegenerierung und Kompilierung.

Wann sollte man die explizite Designer-Rückgängig-Unterstützung verwenden?

Designer müssen ihre eigene Rückgängig-Verwaltung bereitstellen, wenn sie eine grafische Benutzeroberfläche verwenden, die als Ansichtsadapter bezeichnet wird, außer dem von Control bereitgestellten.

Ein Beispiel hierfür könnte das Erstellen eines Produkts mit einer webbasierten grafischen Entwurfsschnittstelle anstelle einer .NET Framework-basierten grafischen Schnittstelle sein.

In solchen Fällen müsste man diesen Ansichtsadapter mit Visual Studio registrieren ProvideViewAdapterAttributeund eine explizite Rückgängig-Verwaltung bereitstellen.

Designer müssen CodeDOM- und Persistenzunterstützung bereitstellen, wenn sie das Modell zur Codegenerierung von Visual Studio im System.CodeDom Namensraum nicht verwenden.

Rückgängigmachen der Supportfeatures des Designers

Das Environment SDK bietet Standardimplementierungen von Schnittstellen, die erforderlich sind, um Rückgängig-Unterstützung bereitzustellen, die von Designern verwendet werden können, die keine Control basierten Klassen für ihre Benutzeroberflächen oder das standardmäßige CodeDOM- und Persistenzmodell verwenden können.

Die OleUndoEngine Klasse wird von der .NET Framework-Klasse UndoEngine abgeleitet, indem eine Implementierung der IOleUndoManager Klasse zum Verwalten von Rückgängig-Vorgängen verwendet wird.

Visual Studio stellt die folgende Funktion zum Rückgängigmachen von Vorgängen im Designer bereit:

Das Environment SDK bietet CodeDOM- und Persistenzunterstützung, indem Folgendes bereitgestellt wird:

Verwenden der Umgebungs-SDK-Features zur Bereitstellung der Rückgängig-Funktion

Um Unterstützung für "Rückgängig machen" zu erhalten, muss ein Objekt, das einen Designer implementiert, eine Instanz der OleUndoEngine-Klasse mit einer gültigen IServiceProvider-Implementierung instanziieren und initialisieren. Diese IServiceProvider Klasse muss die folgenden Dienste bereitstellen:

Designer, die einen OleUndoEngine-basierten Rückgängig-Mechanismus implementieren, verfolgen Änderungen automatisch, wenn: