ComponentDesigner Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
Para el propio objeto raíz, que devuelve la IDesignerHost.RootComponent propiedad , porque se hereda de su clase base.
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 |
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) |