Compartilhar via


ComponentDesigner Classe

Definição

Estende o comportamento do modo de design de um componente.

public ref class ComponentDesigner : IDisposable, System::ComponentModel::Design::IDesigner, System::ComponentModel::Design::IDesignerFilter
public ref class ComponentDesigner : IDisposable, System::ComponentModel::Design::IComponentInitializer, System::ComponentModel::Design::IDesignerFilter, System::ComponentModel::Design::ITreeDesigner
public class ComponentDesigner : IDisposable, System.ComponentModel.Design.IDesigner, System.ComponentModel.Design.IDesignerFilter
public class ComponentDesigner : IDisposable, System.ComponentModel.Design.IComponentInitializer, System.ComponentModel.Design.IDesignerFilter, System.ComponentModel.Design.ITreeDesigner
type ComponentDesigner = class
    interface IDesigner
    interface IDisposable
    interface IDesignerFilter
type ComponentDesigner = class
    interface ITreeDesigner
    interface IDesigner
    interface IDisposable
    interface IDesignerFilter
    interface IComponentInitializer
Public Class ComponentDesigner
Implements IDesigner, IDesignerFilter, IDisposable
Public Class ComponentDesigner
Implements IComponentInitializer, IDesignerFilter, IDisposable, ITreeDesigner
Herança
ComponentDesigner
Derivado
Implementações

Exemplos

O exemplo de código a seguir fornece uma implementação de exemplo ComponentDesigner e um componente de exemplo associado ao designer. O designer implementa uma substituição do Initialize método que chama o método base Initialize , uma substituição do DoDefaultAction método que exibe um MessageBox quando o componente é clicado duas vezes e uma substituição do acessador de Verbs propriedade que fornece um comando de menu personalizado DesignerVerb para o menu de atalho do componente.

#using <System.dll>
#using <System.Design.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>

using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Drawing;
using namespace System::Windows::Forms;

// Provides an example component designer.
ref class ExampleComponentDesigner: public ComponentDesigner
{
public:
   ExampleComponentDesigner()
   {
   }

   // This method provides an opportunity to perform processing when a designer is initialized.
   // The component parameter is the component that the designer is associated with.
   virtual void Initialize( IComponent^ component ) override
   {
      // Always call the base Initialize method in an of this method.
      ComponentDesigner::Initialize( component );
   }

   // This method is invoked when the associated component is double-clicked.
   virtual void DoDefaultAction() override
   {
      MessageBox::Show( "The event handler for the default action was invoked." );
   }

   // This method provides designer verbs.
   property DesignerVerbCollection^ Verbs 
   {
      virtual DesignerVerbCollection^ get() override
      {
         array<DesignerVerb^>^ newDesignerVerbs = {gcnew DesignerVerb( "Example Designer Verb Command", gcnew EventHandler( this, &ExampleComponentDesigner::onVerb ) )};
         return gcnew DesignerVerbCollection( newDesignerVerbs );
      }
   }

private:
   // Event handling method for the example designer verb
   void onVerb( Object^ sender, EventArgs^ e )
   {
      MessageBox::Show( "The event handler for the Example Designer Verb Command was invoked." );
   }
};

// Provides an example component associated with the example component designer.

[DesignerAttribute(ExampleComponentDesigner::typeid, IDesigner::typeid)]
ref class ExampleComponent: public Component
{
public:
   ExampleComponent(){}
};
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Windows.Forms;

namespace ExampleComponent
{	
    // Provides an example component designer.
    public class ExampleComponentDesigner : System.ComponentModel.Design.ComponentDesigner
    {
        public ExampleComponentDesigner()
        {
        }

        // This method provides an opportunity to perform processing when a designer is initialized.
        // The component parameter is the component that the designer is associated with.
        public override void Initialize(System.ComponentModel.IComponent component)
        {
            // Always call the base Initialize method in an override of this method.
            base.Initialize(component);
        }

        // This method is invoked when the associated component is double-clicked.
        public override void DoDefaultAction()
        {
            MessageBox.Show("The event handler for the default action was invoked.");
        }

        // This method provides designer verbs.
        public override System.ComponentModel.Design.DesignerVerbCollection Verbs
        {
            get
            {
                return new DesignerVerbCollection( new DesignerVerb[] { new DesignerVerb("Example Designer Verb Command", new EventHandler(this.onVerb)) } );
            }
        }

        // Event handling method for the example designer verb
        private void onVerb(object sender, EventArgs e)
        {
            MessageBox.Show("The event handler for the Example Designer Verb Command was invoked.");
        }
    }

    // Provides an example component associated with the example component designer.
    [DesignerAttribute(typeof(ExampleComponentDesigner), typeof(IDesigner))]
    public class ExampleComponent : System.ComponentModel.Component
    {		
        public ExampleComponent()
        {
        }
    }
}
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Windows.Forms

Namespace ExampleComponent

    ' Provides an example component designer.
    Public Class ExampleComponentDesigner
        Inherits System.ComponentModel.Design.ComponentDesigner

        Public Sub New()
        End Sub

        ' This method provides an opportunity to perform processing when a designer is initialized.
        ' The component parameter is the component that the designer is associated with.
        Public Overrides Sub Initialize(ByVal component As System.ComponentModel.IComponent)
            ' Always call the base Initialize method in an override of this method.
            MyBase.Initialize(component)
        End Sub

        ' This method is invoked when the associated component is double-clicked.
        Public Overrides Sub DoDefaultAction()
            MessageBox.Show("The event handler for the default action was invoked.")
        End Sub

        ' This method provides designer verbs.
        Public Overrides ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection
            Get
                Return New DesignerVerbCollection(New DesignerVerb() {New DesignerVerb("Example Designer Verb Command", New EventHandler(AddressOf Me.onVerb))})
            End Get
        End Property

        ' Event handling method for the example designer verb
        Private Sub onVerb(ByVal sender As Object, ByVal e As EventArgs)
            MessageBox.Show("The event handler for the Example Designer Verb Command was invoked.")
        End Sub
    End Class

    ' Provides an example component associated with the example component designer.
    <DesignerAttribute(GetType(ExampleComponentDesigner), GetType(IDesigner))> _
     Public Class ExampleComponent
        Inherits System.ComponentModel.Component

        Public Sub New()
        End Sub
    End Class

End Namespace 'ExampleComponent

Comentários

A ComponentDesigner classe de designer base fornece um designer simples que pode estender o comportamento de um componente associado no modo de design.

ComponentDesigner fornece uma implementação de interface vazia IDesignerFilter , cujos métodos podem ser substituídos para ajustar os atributos, propriedades e eventos do componente associado em tempo de design.

Você pode associar um designer a um tipo usando um DesignerAttribute. Para obter uma visão geral da personalização do comportamento de tempo de design, consulte Estendendo Design-Time suporte.

A ComponentDesigner classe implementa um comportamento especial para os descritores de propriedade de componentes herdados. Um tipo interno chamado InheritedPropertyDescriptor é usado pela implementação padrão ComponentDesigner para ficar em propriedades herdadas de uma classe base. Há dois casos em que esses descritores de propriedade são adicionados.

  1. Para o próprio objeto raiz, que é retornado pela IDesignerHost.RootComponent propriedade , porque você está herdando de sua classe base.

  2. Para campos encontrados na classe base do objeto raiz. Campos públicos e protegidos da classe base são adicionados ao designer para que possam ser manipulados pelo usuário.

A InheritedPropertyDescriptor classe modifica o valor padrão de uma propriedade, de modo que o valor padrão seja o valor atual na instanciação do objeto. Isso ocorre porque a propriedade é herdada de outra instância. O designer define a redefinição do valor da propriedade como definindo-o como o valor definido pela classe herdada. Esse valor pode ser diferente do valor padrão armazenado em metadados.

Construtores

ComponentDesigner()

Inicializa uma nova instância da classe ComponentDesigner.

Propriedades

ActionLists

Obtém as listas de ação de tempo de design com suporte pelo componente associado ao designer.

AssociatedComponents

Obtém a coleção de componentes associados ao componente gerenciado pelo designer.

Component

Obtém o componente que deste designer está criando.

InheritanceAttribute

Obtém um atributo que indica o tipo de herança do componente associado.

Inherited

Obtém um valor que indica se este componente é herdado.

ParentComponent

Obtém o componente pai para este designer.

SetTextualDefaultProperty

Estende o comportamento do modo de design de um componente.

ShadowProperties

Obtém uma coleção de valores de propriedade que substituem as configurações do usuário.

Verbs

Obtém os verbos de tempo de design com suporte pelo componente associado ao designer.

Métodos

Dispose()

Libera todos os recursos usados pelo ComponentDesigner.

Dispose(Boolean)

Libera os recursos não gerenciados usados pelo ComponentDesigner e opcionalmente libera os recursos gerenciados.

DoDefaultAction()

Cria uma assinatura de método no arquivo de código-fonte para o evento padrão no componente e navega o cursor do usuário para essa localização.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Tenta liberar recursos chamando Dispose(false) antes que o objeto seja recuperado pela coleta de lixo.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetService(Type)

Tenta recuperar o tipo de serviço especificado do site no modo de design do componente do designer.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Initialize(IComponent)

Prepara o designer para exibir, editar e criar o componente especificado.

InitializeExistingComponent(IDictionary)

Reinicializa um componente existente.

InitializeNewComponent(IDictionary)

Inicializa um componente recém-criado.

InitializeNonDefault()
Obsoleto.
Obsoleto.

Inicializa as configurações de um componente importado que já foi inicializado para as configurações que não sejam os padrões.

InvokeGetInheritanceAttribute(ComponentDesigner)

Obtém o InheritanceAttribute do ComponentDesigner especificado.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnSetComponentDefaults()
Obsoleto.
Obsoleto.

Define as propriedades padrão do componente.

PostFilterAttributes(IDictionary)

Permite que um designer altere ou remova itens do conjunto de atributos que ele expõe por meio de um TypeDescriptor.

PostFilterEvents(IDictionary)

Permite que um designer altere ou remova itens do conjunto de eventos que ele expõe por meio de um TypeDescriptor.

PostFilterProperties(IDictionary)

Permite que um designer altere ou remova itens do conjunto de propriedades que ele expõe por meio de um TypeDescriptor.

PreFilterAttributes(IDictionary)

Permite um designer seja adicionado ao conjunto de atributos que ele expõe por meio de um TypeDescriptor.

PreFilterEvents(IDictionary)

Permite um designer seja adicionado ao conjunto de eventos que ele expõe por meio de um TypeDescriptor.

PreFilterProperties(IDictionary)

Permite que um designer adicione ao conjunto de propriedades que ele expõe por meio de um TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Notifica o IComponentChangeService de que este componente foi alterado.

RaiseComponentChanging(MemberDescriptor)

Notifica o IComponentChangeService de que este componente está prestes a ser alterado.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IDesignerFilter.PostFilterAttributes(IDictionary)

Para obter uma descrição desse membro, consulte o método PostFilterAttributes(IDictionary).

IDesignerFilter.PostFilterEvents(IDictionary)

Para obter uma descrição desse membro, consulte o método PostFilterEvents(IDictionary).

IDesignerFilter.PostFilterProperties(IDictionary)

Para obter uma descrição desse membro, consulte o método PostFilterProperties(IDictionary).

IDesignerFilter.PreFilterAttributes(IDictionary)

Para obter uma descrição desse membro, consulte o método PreFilterAttributes(IDictionary).

IDesignerFilter.PreFilterEvents(IDictionary)

Para obter uma descrição desse membro, consulte o método PreFilterEvents(IDictionary).

IDesignerFilter.PreFilterProperties(IDictionary)

Para obter uma descrição desse membro, consulte o método PreFilterProperties(IDictionary).

ITreeDesigner.Children

Para obter uma descrição desse membro, consulte o propriedade Children.

ITreeDesigner.Parent

Para obter uma descrição desse membro, consulte o propriedade Parent.

Aplica-se a

Confira também