Fournir une prise en charge d’annulation aux concepteurs

Les concepteurs, comme les éditeurs, doivent généralement prendre en charge les opérations d’annulation afin que les utilisateurs puissent inverser leurs modifications récentes lors de la modification d’un élément de code.

La plupart des concepteurs implémentés dans Visual Studio ont une prise en charge « annuler » automatiquement fournie par l’environnement.

Implémentations du concepteur qui doivent fournir une prise en charge de la fonctionnalité d’annulation :

Pour plus d’informations sur l’écriture de concepteurs à l’aide de .NET Framework, consultez Extension de la prise en charge au moment du design.

Le Kit de développement logiciel (SDK) Visual Studio fournit une infrastructure d’annulation par défaut en :

Obtenir la prise en charge de l’annulation automatiquement

Tout concepteur créé dans Visual Studio a la prise en charge automatique et complète de l’annulation si, le concepteur :

  • Utilise une Control classe basée pour son interface utilisateur.

  • Utilise le système standard de génération et d’analyse de code basé sur CodeDOM pour la génération et la persistance du code.

    Pour plus d’informations sur l’utilisation de la prise en charge de Visual Studio CodeDOM, consultez Génération et compilation de code source dynamique.

Quand utiliser la prise en charge de l’annulation du concepteur explicite

Les concepteurs doivent fournir leur propre gestion d’annulation s’ils utilisent une interface utilisateur graphique, appelée adaptateur de vue, autre que celui fourni par Control.

Par exemple, vous pouvez créer un produit avec une interface de conception graphique web plutôt qu’une interface graphique basée sur .NET Framework.

Dans ce cas, il faudrait inscrire cet adaptateur de vue auprès de Visual Studio à l’aide ProvideViewAdapterAttributede Visual Studio et fournir une gestion d’annulation explicite.

Les concepteurs doivent fournir la prise en charge de CodeDOM et de persistance s’ils n’utilisent pas le modèle de génération de code Visual Studio fourni dans l’espace System.CodeDom de noms.

Annuler les fonctionnalités de prise en charge du concepteur

Le Kit de développement logiciel (SDK) Environment fournit des implémentations par défaut d’interfaces nécessaires pour fournir une prise en charge d’annulation qui peut être utilisée par les concepteurs qui n’utilisent Control pas de classes basées pour leurs interfaces utilisateur ou le modèle de persistance codeDOM et de persistance standard.

La OleUndoEngine classe dérive de la classe .NET Framework UndoEngine à l’aide d’une implémentation de la IOleUndoManager classe pour gérer les opérations d’annulation.

Visual Studio fournit la fonctionnalité suivante pour annuler le concepteur :

Le Kit de développement logiciel (SDK) d’environnement fournit la prise en charge de CodeDOM et de persistance en fournissant :

Utiliser les fonctionnalités du Kit de développement logiciel (SDK) d’environnement pour fournir une prise en charge d’annulation

Pour obtenir la prise en charge d’annulation, un objet implémentant un concepteur doit instancier et initialiser une instance de la OleUndoEngine classe avec une implémentation valide IServiceProvider . Cette IServiceProvider classe doit fournir les services suivants :

Les concepteurs implémentant un mécanisme d’annulation OleUndoEngine basé effectuent automatiquement le suivi des modifications si :