Partilhar via


Fornecendo suporte à função Desfazer para Designers

Designers, como editores, geralmente precisam oferecer suporte a operações de desfazer para que os usuários podem reverter suas alterações recentes ao modificar um elemento de código.

A maioria dos designers implementados em Visual Studio têm fornecido automaticamente pelo ambiente de suporte de desfazer.

Implementações de Designer que precisam para fornecer suporte para o recurso de desfazer:

Para obter mais informações sobre a escrita de designers usando o .NET Framework, consulte Estendendo o suporte para tempo de design.

O SDK do Visual Studio fornece uma infra-estrutura de desfazer padrão por:

Como obter o suporte à função Desfazer automaticamente

Qualquer designer criado no Visual Studio tem suporte completo e automáticos de desfazer se, o designer:

  • Faz uso de um Control com base em classe para sua interface do usuário.

  • Emprega a geração de código padrão baseado no CodeDOM e o sistema de análise de persistência e geração de código.

    Para obter mais informações sobre como trabalhar com o suporte do CodeDOM de Visual Studio, consulteGeração e compilação de código-fonte dinâmico

Quando usar o suporte à função desfazer de Designer explícita

Designers devem fornecer seu próprio gerenciamento desfazer se eles usarem uma interface gráfica do usuário, conhecida como um adaptador de exibição diferente daquele fornecido pelo Control.

Um exemplo disso pode estar criando um produto com uma interface de design gráfico baseada na web em vez de um .NET Framework com base em interface gráfica.

Em tais casos, é necessário registrar este adaptador de exibição com Visual Studio usando ProvideViewAdapterAttributee fornecer gerenciamento explícito de desfazer.

Designers precisam fornecer suportam de CodeDOM e persistência se eles usarem o Visual Studio fornecido no modelo de geração de código do System.CodeDom espaço de nomes.

Recursos de suporte do Designer de desfazer

O SDK do ambiente fornece implementações padrão dessas interfaces necessários para fornecer desfazer de suporte que pode ser usado pelos designers não usando Control com base em classes para suas interfaces de usuário ou o modelo padrão de CodeDOM e persistência.

O OleUndoEngine classe deriva o .NET FrameworkUndoEngine usando uma implementação de classe a IOleUndoManager classe para gerenciar operações de desfazer. 

Visual Studio fornece o seguinte recurso para desfazer designer:

  • Funcionalidade de desfazer vinculadas através de vários designers.

  • Unidades secundárias dentro de um designer podem interagir com seus pais com a implementação de IOleUndoUnit e IOleParentUndoUnit na UndoUnit.

O SDK do ambiente oferece suportam a CodeDOM e persistência, fornecendo:

A IComponentChangeService fornecida pelo Visual Studioo host de design.

Usando os recursos SDK do ambiente para o suporte de Desfazer fonte

Para obter suporte de desfazer, um objeto implementando um designer deve:

Designers de implementação de um OleUndoEngine o mecanismo de desfazer com base rastreará automaticamente as alterações se:

  • As alterações de propriedade são feitas por meio do TypeDescriptor objeto.

  • IComponentChangeServiceeventos são gerados manualmente quando uma alteração não podem ser desfeita é confirmada.

  • Modificação no designer foi criada dentro do contexto de um DesignerTransaction.

  • O designer opta por explicitamente criar unidades de desfazer usando a unidade para desfazer padrão fornecida por uma implementação de UndoUnit ou a implementação específica de Visual Studio UndoUnit, que é derivada de UndoUnit e também fornece uma implementação de ambos IOleUndoUnit e IOleParentUndoUnit.

Consulte também

Referência

UndoEngine

OleUndoEngine

Outros recursos

Estendendo o suporte para tempo de design