Compartir a través de


Proporcionar compatibilidad para deshacer a los diseñadores

Los diseñadores, como los editores, suelen necesitar admitir operaciones de deshacer para que los usuarios puedan revertir sus cambios recientes al modificar un elemento de código.

La mayoría de los diseñadores implementados en Visual Studio tienen compatibilidad con "deshacer" proporcionada automáticamente por el entorno.

Implementaciones del diseñador que necesitan proporcionar compatibilidad con la característica de deshacer:

Para obtener más información sobre cómo escribir diseñadores con .NET Framework, vea Ampliar la compatibilidad en tiempo de diseño.

El SDK de Visual Studio proporciona una infraestructura de deshacer predeterminada mediante:

Obtener compatibilidad con deshacer automáticamente

Cualquier diseñador creado en Visual Studio tiene compatibilidad automática y completa para deshacer si, el diseñador:

  • Usa una Control clase basada en su interfaz de usuario.

  • Emplea el sistema estándar de generación y análisis de código basado en CodeDOM para la generación y persistencia de código.

    Para obtener más información sobre cómo trabajar con la compatibilidad con Visual Studio CodeDOM, vea Generación y compilación dinámica de código fuente.

Cuándo usar la compatibilidad con deshacer del diseñador explícito

Los diseñadores deben proporcionar su propia administración de deshacer si usan una interfaz gráfica de usuario, denominada adaptador de vista, que no sea la proporcionada por Control.

Un ejemplo de esto podría ser crear un producto con una interfaz gráfica basada en web en lugar de una interfaz gráfica basada en .NET Framework.

En tales casos, tendría que registrar este adaptador de vista con Visual Studio mediante ProvideViewAdapterAttributey proporcionar una administración de deshacer explícita.

Los diseñadores deben proporcionar compatibilidad con CodeDOM y persistencia si no usan el modelo de generación de código de Visual Studio proporcionado en el espacio de System.CodeDom nombres.

Deshacer características de compatibilidad del diseñador

El SDK de entorno proporciona implementaciones predeterminadas de interfaces necesarias para proporcionar compatibilidad para deshacer que los diseñadores no pueden usar Control clases basadas para sus interfaces de usuario o el modelo de persistencia y CodeDOM estándar.

La OleUndoEngine clase deriva de la clase .NET Framework UndoEngine mediante una implementación de la IOleUndoManager clase para administrar las operaciones de deshacer.

Visual Studio proporciona la siguiente característica para deshacer el diseñador:

El SDK de entorno proporciona compatibilidad con CodeDOM y persistencia proporcionando:

Uso de las características del SDK de entorno para proporcionar compatibilidad con deshacer

Para obtener compatibilidad con deshacer, un objeto que implementa un diseñador debe crear instancias e inicializar una instancia de la OleUndoEngine clase con una implementación válida IServiceProvider . Esta IServiceProvider clase debe proporcionar los siguientes servicios:

Los diseñadores que implementan un OleUndoEngine mecanismo de deshacer basado realizan un seguimiento automático de los cambios si: