Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Designers, till exempel redigerare, behöver vanligtvis stöd för ångra-åtgärder så att användarna kan ångra sina senaste ändringar när de ändrar ett kodelement.
De flesta designer i Visual Studio har automatiskt "ångra"-stöd som tillhandahålls av miljön.
Designerimplementeringar som behöver stöd för ångra-funktionen:
Erbjud ångrafunktionalitet genom att implementera den abstrakta basklassen UndoEngine
Tillhandahåll persistence och CodeDOM-stöd genom att implementera klasserna IDesignerSerializationService och IComponentChangeService .
Mer information om hur du skriver designers med hjälp av .NET Framework finns i avsnittet 'Utöka Design-Time Support'.
Visual Studio SDK tillhandahåller en standardinfrastruktur för ångringsåtgärder genom att:
Tillhandahålla implementeringar för hantering av ångra-funktioner via klasserna OleUndoEngine och OleUndoEngine.UndoUnit.
Tillhandahålla persistence och CodeDOM-stöd via standard CodeDomComponentSerializationService och IComponentChangeService implementeringar.
Få ångringsstöd automatiskt
Alla designer som skapats i Visual Studio har stöd för automatisk och fullständig ångring, om designern:
Använder en Control baserad klass för användargränssnittet.
Använder standard codedom-baserad kodgenerering och parsningssystem för kodgenerering och beständighet.
Mer information om hur du arbetar med Visual Studio CodeDOM-stöd finns i Dynamisk källkodsgenerering och kompilering.
När du ska använda explicit ångrafunktion i Designer
Designers måste ange sin egen ångra-hantering om de använder ett grafiskt användargränssnitt, som kallas för en adapter, snarare än det som tillhandahålls av Control.
Ett exempel på detta kan vara att skapa en produkt med ett webbaserat grafiskt designgränssnitt i stället för ett .NET Framework-baserat grafiskt gränssnitt.
I sådana fall skulle man behöva registrera den här view-adaptern med Visual Studio med hjälp av ProvideViewAdapterAttribute, och tillhandahålla explicit hantering av ångra.
Formgivare måste tillhandahålla stöd för CodeDOM och persistens om de inte använder Visual Studio-kodgenereringsmodellen som tillhandahålls i namnområdet System.CodeDom.
Ångra supportfunktioner i designern
Miljö-SDK tillhandahåller standardimplementeringar av gränssnitt som behövs för att tillhandahålla ångra-funktionalitet som kan användas av designers som inte använder Control-baserade klasser för sina användargränssnitt eller standardmodellen för CodeDOM och beständighetsmodell.
Klassen OleUndoEngine härleds från .NET Framework-klassen UndoEngine med hjälp av en implementering av IOleUndoManager klassen för att hantera ångrade åtgärder.
Visual Studio tillhandahåller följande funktion för att ångra designern:
Länkad ångrafunktion över flera designverktyg.
Barnenheter i en designer kan interagera med sina föräldrar genom att implementera IOleUndoUnit och IOleParentUndoUnit på OleUndoEngine.UndoUnit.
Miljö-SDK:et tillhandahåller stöd för CodeDOM och persistence genom att tillhandahålla:
CodeDomComponentSerializationService som en implementering av IDesignerSerializationService
En IComponentChangeService som tillhandahålls av Visual Studio-designvärd.
Använd miljö-SDK-funktionerna för att tillhandahålla ångra-stöd
För att få stöd för ångra måste ett objekt som implementerar en designer instansiera och initiera en instans av en OleUndoEngine-klass med en giltig IServiceProvider-implementering. Den här IServiceProvider klassen måste tillhandahålla följande tjänster:
- 
Designers som använder Visual Studio CodeDOM-serialisering kan välja att använda CodeDomComponentSerializationService som tillhandahålls med Visual Studio SDK som implementering av IDesignerSerializationService.
I det här fallet ska klassen IServiceProvider som tillhandahålls konstruktorn OleUndoEngine returnera det här objektet som en implementering av IDesignerSerializationService klassen.
 - 
Designers som använder standardinställningen DesignSurface som tillhandahålls av Visual Studio-designvärden kommer garanterat att ha en standardimplementering av IComponentChangeService klassen.
 
Designers som implementerar en OleUndoEngine baserad ångra-mekanism spårar automatiskt ändringar om:
Egenskapsändringar görs via objektet TypeDescriptor .
IComponentChangeService händelser genereras manuellt när en ändring som kan ångras har bekräftats.
Ändringar i designern skapades i kontexten för en DesignerTransaction.
Designern väljer att uttryckligen skapa ångra-enheter antingen med standardångra-enheten som tillhandahålls av en implementering av UndoEngine.UndoUnit eller med den Visual Studio-specifika implementeringen OleUndoEngine.UndoUnit, vilken härleds från UndoEngine.UndoUnit och också tillhandahåller implementeringar av både IOleUndoUnit och IOleParentUndoUnit.