ComponentDesigner Clase

Definición

Extiende el comportamiento de un componente en modo de diseño.

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
Herencia
ComponentDesigner
Derivado
Implementaciones

Ejemplos

En el ejemplo de código siguiente se proporciona una implementación de ejemplo ComponentDesigner y un componente de ejemplo asociado al diseñador. El diseñador implementa una invalidación del Initialize método que llama al método base Initialize , una invalidación del DoDefaultAction método que muestra cuando MessageBox se hace doble clic en el componente y una invalidación del descriptor de acceso de propiedad Verbs que proporciona un comando de menú personalizado DesignerVerb al menú contextual del 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

Comentarios

La ComponentDesigner clase del diseñador base proporciona un diseñador simple que puede ampliar el comportamiento de un componente asociado en modo de diseño.

ComponentDesigner proporciona una implementación de interfaz vacía IDesignerFilter , cuyos métodos se pueden invalidar para ajustar los atributos, propiedades y eventos del componente asociado en tiempo de diseño.

Puede asociar un diseñador a un tipo mediante .DesignerAttribute Para obtener información general sobre cómo personalizar el comportamiento en tiempo de diseño, consulte Extensión de Design-Time soporte técnico.

La ComponentDesigner clase implementa un comportamiento especial para los descriptores de propiedad de los componentes heredados. La implementación predeterminada ComponentDesigner usa un tipo interno denominado InheritedPropertyDescriptor para admitir las propiedades heredadas de una clase base. Hay dos casos en los que se agregan estos descriptores de propiedad.

  1. Para el propio objeto raíz, que devuelve la IDesignerHost.RootComponent propiedad , porque se hereda de su clase base.

  2. Para los campos que se encuentran en la clase base del objeto raíz. Los campos públicos y protegidos de la clase base se agregan al diseñador para que el usuario pueda manipularlos.

La InheritedPropertyDescriptor clase modifica el valor predeterminado de una propiedad, de modo que el valor predeterminado sea el valor actual en la creación de instancias de objeto. Esto se debe a que la propiedad se hereda de otra instancia. El diseñador define el restablecimiento del valor de propiedad como establecerlo en el valor establecido por la clase heredada. Este valor puede diferir del valor predeterminado almacenado en los metadatos.

Constructores

ComponentDesigner()

Inicializa una nueva instancia de la clase ComponentDesigner.

Propiedades

ActionLists

Obtiene las listas de acciones en tiempo de diseño que admite el componente asociado al diseñador.

AssociatedComponents

Obtiene la colección de componentes asociados al componente administrado por el diseñador.

Component

Obtiene el componente que el diseñador está creando.

InheritanceAttribute

Obtiene un atributo que indica el tipo de herencia del componente asociado.

Inherited

Obtiene un valor que indica si este componente es heredado.

ParentComponent

Obtiene el componente primario de este diseñador.

SetTextualDefaultProperty

Extiende el comportamiento de un componente en modo de diseño.

ShadowProperties

Obtiene una colección de valores de propiedad que reemplazan la configuración del usuario.

Verbs

Obtiene los verbos en tiempo de diseño que admite el componente asociado al diseñador.

Métodos

Dispose()

Libera todos los recursos que usa ComponentDesigner.

Dispose(Boolean)

Libera los recursos no administrados que usa ComponentDesigner y, de forma opcional, libera los recursos administrados.

DoDefaultAction()

Crea una firma de método en el archivo de código fuente para el evento predeterminado del componente y hace navegar el cursor del usuario en esa ubicación.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Finalize()

Intenta liberar los recursos mediante una llamada a Dispose(false) antes de que el objeto sea reclamado por la recolección de elementos no utilizados.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetService(Type)

Intenta recuperar el tipo de servicio especificado del sitio en modo de diseño del componente del diseñador.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
Initialize(IComponent)

Prepara el diseñador para ver, modificar y diseñar el componente especificado.

InitializeExistingComponent(IDictionary)

Reinicializa un componente existente.

InitializeNewComponent(IDictionary)

Inicializa un componente recién creado.

InitializeNonDefault()
Obsoletos.
Obsoletos.

Inicializa la configuración de un componente importado que ya se ha inicializado con una configuración que no es la predeterminada.

InvokeGetInheritanceAttribute(ComponentDesigner)

Obtiene el objeto InheritanceAttribute de la enumeración ComponentDesigner especificada.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnSetComponentDefaults()
Obsoletos.
Obsoletos.

Establece las propiedades predeterminadas del componente.

PostFilterAttributes(IDictionary)

Permite a un diseñador cambiar o quitar elementos en el conjunto de atributos que expone mediante un TypeDescriptor.

PostFilterEvents(IDictionary)

Permite a un diseñador cambiar o quitar elementos del conjunto de eventos que expone mediante un objeto TypeDescriptor.

PostFilterProperties(IDictionary)

Permite a un diseñador cambiar o quitar elementos del conjunto de propiedades que expone mediante un objeto TypeDescriptor.

PreFilterAttributes(IDictionary)

Permite a un diseñador agregar elementos al conjunto de atributos que expone mediante un objeto TypeDescriptor.

PreFilterEvents(IDictionary)

Permite a un diseñador agregar elementos al conjunto de eventos que expone mediante un objeto TypeDescriptor.

PreFilterProperties(IDictionary)

Permite a un diseñador agregar elementos al conjunto de propiedades que expone mediante un objeto TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Notifica a IComponentChangeService que este componente se ha cambiado.

RaiseComponentChanging(MemberDescriptor)

Notifica a IComponentChangeService que este componente se va a cambiar.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IDesignerFilter.PostFilterAttributes(IDictionary)

Para obtener una descripción de este miembro, vea el método PostFilterAttributes(IDictionary).

IDesignerFilter.PostFilterEvents(IDictionary)

Para obtener una descripción de este miembro, vea el método PostFilterEvents(IDictionary).

IDesignerFilter.PostFilterProperties(IDictionary)

Para obtener una descripción de este miembro, vea el método PostFilterProperties(IDictionary).

IDesignerFilter.PreFilterAttributes(IDictionary)

Para obtener una descripción de este miembro, vea el método PreFilterAttributes(IDictionary).

IDesignerFilter.PreFilterEvents(IDictionary)

Para obtener una descripción de este miembro, vea el método PreFilterEvents(IDictionary).

IDesignerFilter.PreFilterProperties(IDictionary)

Para obtener una descripción de este miembro, vea el método PreFilterProperties(IDictionary).

ITreeDesigner.Children

Para una descripción de este miembro, consulte la propiedad Children.

ITreeDesigner.Parent

Para una descripción de este miembro, consulte la propiedad Parent.

Se aplica a

Consulte también