ComponentDesigner Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.
Para o próprio objeto raiz, que é retornado pela IDesignerHost.RootComponent propriedade , porque você está herdando de sua classe base.
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 |
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) |