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 seguinte fornece uma implementação de exemplo ComponentDesigner e um componente de exemplo associado ao designer. O designer implementa uma sobreposição do Initialize método que chama o método base Initialize , uma sobreposição do DoDefaultAction método que mostra a MessageBox quando o componente é duplamente clicado, e uma sobreposição do Verbs acessório de propriedades 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

Observações

A ComponentDesigner classe 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 sobrepostos para ajustar os atributos, propriedades e eventos do componente associado no momento do design.

Pode associar um designer a um tipo usando um DesignerAttribute. Para uma visão geral da personalização do comportamento em tempo de design, veja Extensão do Suporte Design-Time.

A ComponentDesigner classe implementa um comportamento especial para os descritores de propriedades dos componentes herdados. Um tipo interno nomeado InheritedPropertyDescriptor é usado pela implementação padrão ComponentDesigner para representar propriedades herdadas de uma classe base. Existem dois casos em que estes descritores de propriedade são adicionados.

  1. Para o próprio objeto raiz, que é devolvido pela IDesignerHost.RootComponent propriedade, porque estás a herdar da 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 utilizador.

A InheritedPropertyDescriptor classe modifica o valor padrão de uma propriedade, de modo que o valor padrão seja o valor atual na instância do objeto. Isto deve-se ao facto de a propriedade ser herdada de outra instância. O designer define redefinir o valor da propriedade como defini-lo para o valor que foi definido pela classe herdada. Este valor pode diferir do valor padrão armazenado nos metadados.

Construtores

Name Description
ComponentDesigner()

Inicializa uma nova instância da ComponentDesigner classe.

Propriedades

Name Description
ActionLists

Recebe as listas de ações em tempo de design suportadas pelo componente associado ao projetista.

AssociatedComponents

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

Component

Recebe o componente que este designer está a desenhar.

InheritanceAttribute

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

Inherited

Recebe um valor que indica se este componente é herdado.

ParentComponent

Obtém o componente pai para este designer.

ShadowProperties

Obtém uma coleção de valores de propriedades que sobrepõem as definições do utilizador.

Verbs

Obtém os verbos em tempo de design suportados pelo componente associado ao designer.

Métodos

Name Description
Dispose()

Liberta todos os recursos utilizados pelo ComponentDesigner.

Dispose(Boolean)

Liberta os recursos não geridos usados pelo ComponentDesigner e opcionalmente liberta os recursos geridos.

DoDefaultAction()

Cria uma assinatura de método no ficheiro de código-fonte para o evento predefinido no componente e navega pelo cursor do utilizador até essa localização.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Tenta libertar recursos ligando Dispose(false) antes de o objeto ser recuperado pelo garbage collection.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetService(Type)

Tenta recuperar o tipo de serviço especificado a partir do local do modo de design do componente do projetista.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Initialize(IComponent)

Prepara o designer para visualizar, editar e desenhar o componente especificado.

InitializeExistingComponent(IDictionary)

Reinicializa um componente existente.

InitializeNewComponent(IDictionary)

Inicializa um componente recém-criado.

InitializeNonDefault()
Obsoleto.

Inicializa as definições de um componente importado que já está inicializado para definições diferentes das predefinidas.

InvokeGetInheritanceAttribute(ComponentDesigner)

Obtém o InheritanceAttribute do especificado ComponentDesigner.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
OnSetComponentDefaults()
Obsoleto.

Define as propriedades padrão do componente.

PostFilterAttributes(IDictionary)

Permite a um designer alterar ou remover itens do conjunto de atributos que expõe através de um TypeDescriptor.

PostFilterEvents(IDictionary)

Permite a um designer alterar ou remover itens do conjunto de eventos que expõe através de um TypeDescriptor.

PostFilterProperties(IDictionary)

Permite a um designer alterar ou remover itens do conjunto de propriedades que expõe através de um TypeDescriptor.

PreFilterAttributes(IDictionary)

Permite a um designer adicionar ao conjunto de atributos que expõe através de um TypeDescriptor.

PreFilterEvents(IDictionary)

Permite a um designer adicionar ao conjunto de eventos que expõe através de um TypeDescriptor.

PreFilterProperties(IDictionary)

Permite a um designer adicionar ao conjunto de propriedades que expõe através de um TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Notifica que IComponentChangeService este componente foi alterado.

RaiseComponentChanging(MemberDescriptor)

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

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IDesignerFilter.PostFilterAttributes(IDictionary)

Para uma descrição deste elemento, veja o PostFilterAttributes(IDictionary) método.

IDesignerFilter.PostFilterEvents(IDictionary)

Para uma descrição deste elemento, veja o PostFilterEvents(IDictionary) método.

IDesignerFilter.PostFilterProperties(IDictionary)

Para uma descrição deste elemento, veja o PostFilterProperties(IDictionary) método.

IDesignerFilter.PreFilterAttributes(IDictionary)

Para uma descrição deste elemento, veja o PreFilterAttributes(IDictionary) método.

IDesignerFilter.PreFilterEvents(IDictionary)

Para uma descrição deste elemento, veja o PreFilterEvents(IDictionary) método.

IDesignerFilter.PreFilterProperties(IDictionary)

Para uma descrição deste elemento, veja o PreFilterProperties(IDictionary) método.

ITreeDesigner.Children

Para uma descrição deste membro, veja a propriedade Children .

ITreeDesigner.Parent

Para uma descrição deste membro, veja a propriedade Parent .

Aplica-se a

Ver também