Share via


Supplying Undo Support to Designers

Designers, like editors, typically need to support undo operations by allowing users to reverse their recent changes when modifying a code element.

Most designers implemented under Visual Studio 2008 and .NET Framework can have undo support automatically provided by the environment.

Designer implementations needing to explicitly provide support for the undo feature in the .NET Framework:

For more information on writing designers using .NET Framework, see Extending Design-Time Support.

The Visual Studio SDK provides a default undo functionality infrastructure by:

Obtaining Undo Support Automatically

Any designer created in Visual Studio and .NET Framework has automatic and full undo support if, the designer

When to Use Explicit Designer Undo Support

Designers must supply their own undo management if they use a graphical user interface, referred to as a ViewAdapter, other than that supplied by System.Windows.Forms.Control.

An example of this might be creating a product with a web-based graphical design interface rather than a .NET Framework based graphical interface.

In such cases, one would need to register this ViewAdapter with Visual Studio using ProvideViewAdapterAttribute, and provide explicit undo management.

Designers need to provide CodeDOM and persistence support if they do not use the Visual Studio code generation model provided in the System.CodeDom name space.

Undo Support Features of the Designer

The Environment SDK provides default implementations of interfaces needed to provide undo support that can be used by designers not using System.Windows.Forms.Control based classes for their user interfaces or the standard CodeDOM and persistence model.

The OleUndoEngine class derives from the .NET Framework UndoEngine class using an implementation of the IOleUndoManager class to manage undo operations.

The Visual Studio SDK extensions to designer undo, allow:

The Environment SDK provides CodeDOM and persistence support by supplying:

Using the Environment SDK Features to Supply Undo Support

To obtain undo support, an object implementing a designer must:

Designers implementing a OleUndoEngine based undo mechanism automatically tracks changes if:

See Also

Reference

UndoEngine

OleUndoEngine

Other Resources

Extending Design-Time Support