Condividi tramite


Fornire supporto per annullare l'annullamento per le finestre di progettazione

I progettisti, come gli editor, in genere devono supportare operazioni di annullamento in modo che gli utenti possano annullare le modifiche recenti durante la modifica di un elemento di codice.

La maggior parte dei progettisti implementati in Visual Studio include il supporto "annulla" fornito automaticamente dall'ambiente.

Implementazioni della finestra di progettazione che devono fornire supporto per la funzionalità di annullamento:

Per altre informazioni sulla scrittura di finestre di progettazione con .NET Framework, vedere Estendere il supporto della fase di progettazione.

Visual Studio SDK fornisce un'infrastruttura di annullamento predefinita per:

Ottenere automaticamente il supporto di annullamento

Qualsiasi finestra di progettazione creata in Visual Studio include il supporto automatico e completo di annullamento se, la finestra di progettazione:

  • Usa una Control classe basata per l'interfaccia utente.

  • Usa il sistema di generazione e analisi del codice basato su CodeDOM standard per la generazione e la persistenza del codice.

    Per altre informazioni sull'uso del supporto di Visual Studio CodeDOM, vedere Generazione e compilazione dinamica del codice sorgente.

Quando usare il supporto di annullamento della finestra di progettazione esplicita

I progettisti devono fornire la propria gestione di annullamento se usano un'interfaccia utente grafica, denominata scheda di visualizzazione, diversa da quella fornita da Control.

Un esempio potrebbe essere la creazione di un prodotto con un'interfaccia grafica basata sul Web anziché un'interfaccia grafica basata su .NET Framework.

In questi casi, è necessario registrare l'adattatore di visualizzazione con Visual Studio usando ProvideViewAdapterAttributee fornire una gestione esplicita di annullamento.

I progettisti devono fornire supporto codeDOM e persistenza se non usano il modello di generazione di codice di Visual Studio fornito nello spazio dei System.CodeDom nomi.

Annullare le funzionalità di supporto della finestra di progettazione

Environment SDK fornisce implementazioni predefinite delle interfacce necessarie per fornire supporto di annullamento che può essere usato dai progettisti che non usano Control classi basate per le interfacce utente o il modello di persistenza e CodeDOM standard.

La OleUndoEngine classe deriva dalla classe .NET Framework UndoEngine usando un'implementazione della IOleUndoManager classe per gestire le operazioni di annullamento.

Visual Studio offre la funzionalità seguente per annullare la finestra di progettazione:

Environment SDK offre il supporto codeDOM e persistenza fornendo:

Usare le funzionalità di Environment SDK per fornire il supporto di annullamento

Per ottenere il supporto di annullamento, un oggetto che implementa una finestra di progettazione deve creare un'istanza e inizializzare un'istanza della OleUndoEngine classe con un'implementazione valida IServiceProvider . Questa IServiceProvider classe deve fornire i servizi seguenti:

I progettisti che implementano un OleUndoEngine meccanismo di annullamento basato rilevano automaticamente le modifiche se: