ComponentDesigner Classe

Definizione

Estende il comportamento della modalità progettazione di un componente.Extends the design mode behavior of a component.

public ref class ComponentDesigner : IDisposable, System::ComponentModel::Design::IComponentInitializer, System::ComponentModel::Design::IDesignerFilter, System::ComponentModel::Design::ITreeDesigner
public class ComponentDesigner : IDisposable, System.ComponentModel.Design.IComponentInitializer, System.ComponentModel.Design.IDesignerFilter, System.ComponentModel.Design.ITreeDesigner
type ComponentDesigner = class
    interface ITreeDesigner
    interface IDesigner
    interface IDisposable
    interface IDesignerFilter
    interface IComponentInitializer
Public Class ComponentDesigner
Implements IComponentInitializer, IDesignerFilter, IDisposable, ITreeDesigner
Ereditarietà
ComponentDesigner
Derivato
Implementazioni

Esempi

Nell'esempio di codice riportato di seguito viene fornito un esempio ComponentDesigner implementazione e un componente di esempio associato alla finestra di progettazione.The following code example provides an example ComponentDesigner implementation and an example component associated with the designer. La finestra di progettazione implementa un override del metodo Initialize che chiama il metodo di Initialize base, un override del metodo DoDefaultAction che visualizza un MessageBox quando si fa doppio clic sul componente e un override della funzione di accesso della proprietà Verbs che fornisce un oggetto comando di menu DesignerVerb personalizzato al menu di scelta rapida per il componente.The designer implements an override of the Initialize method that calls the base Initialize method, an override of the DoDefaultAction method that displays a MessageBox when the component is double-clicked, and an override of the Verbs property accessor that supplies a custom DesignerVerb menu command to the shortcut menu for the component.

#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

Commenti

La classe ComponentDesigner base designer fornisce una finestra di progettazione semplice in grado di estendere il comportamento di un componente associato in modalità progettazione.The ComponentDesigner base designer class provides a simple designer that can extend the behavior of an associated component in design mode.

ComponentDesigner fornisce un'implementazione dell'interfaccia IDesignerFilter vuota, i cui metodi possono essere sottoposti a override per modificare gli attributi, le proprietà e gli eventi del componente associato in fase di progettazione.ComponentDesigner provides an empty IDesignerFilter interface implementation, whose methods can be overridden to adjust the attributes, properties and events of the associated component at design time.

È possibile associare una finestra di progettazione a un tipo utilizzando un DesignerAttribute.You can associate a designer with a type using a DesignerAttribute. Per una panoramica sulla personalizzazione del comportamento in fase di progettazione, vedere estensione del supporto in fase di progettazione.For an overview of customizing design-time behavior, see Extending Design-Time Support.

La classe ComponentDesigner implementa un comportamento speciale per i descrittori di proprietà dei componenti ereditati.The ComponentDesigner class implements a special behavior for the property descriptors of inherited components. Un tipo interno denominato InheritedPropertyDescriptor viene utilizzato dall'implementazione di ComponentDesigner predefinita per essere utilizzato per le proprietà ereditate da una classe base.An internal type named InheritedPropertyDescriptor is used by the default ComponentDesigner implementation to stand in for properties that are inherited from a base class. Esistono due casi in cui questi descrittori di proprietà vengono aggiunti.There are two cases in which these property descriptors are added.

  1. All'oggetto radice stesso, restituito dalla proprietà IDesignerHost.RootComponent, perché si sta ereditando dalla relativa classe base.To the root object itself, which is returned by the IDesignerHost.RootComponent property, because you are inheriting from its base class.

  2. Ai campi trovati nella classe di base dell'oggetto radice.To fields found in the base class of the root object. I campi Public e protected della classe base vengono aggiunti alla finestra di progettazione in modo che possano essere modificati dall'utente.Public and protected fields from the base class are added to the designer so that they can be manipulated by the user.

La classe InheritedPropertyDescriptor modifica il valore predefinito di una proprietà, in modo che il valore predefinito sia il valore corrente in fase di creazione dell'istanza dell'oggetto.The InheritedPropertyDescriptor class modifies the default value of a property, so that the default value is the current value at object instantiation. Questo è dovuto al fatto che la proprietà viene ereditata da un'altra istanza.This is because the property is inherited from another instance. La finestra di progettazione definisce la reimpostazione del valore della proprietà come impostazione del valore impostato dalla classe ereditata.The designer defines resetting the property value as setting it to the value that was set by the inherited class. Questo valore può essere diverso dal valore predefinito archiviato nei metadati.This value may differ from the default value stored in metadata.

Costruttori

ComponentDesigner()

Inizializza una nuova istanza della classe ComponentDesigner.Initializes a new instance of the ComponentDesigner class.

Proprietà

ActionLists

Ottiene gli elenchi di azioni in fase di progettazione supportati dal componente associato alla finestra di progettazione.Gets the design-time action lists supported by the component associated with the designer.

AssociatedComponents

Ottiene l'insieme dei componenti associati al componente gestito dalla finestra di progettazione.Gets the collection of components associated with the component managed by the designer.

Component

Ottiene il componente progettato dalla finestra di progettazione.Gets the component this designer is designing.

InheritanceAttribute

Ottiene un attributo che indica il tipo di ereditarietà del componente associato.Gets an attribute that indicates the type of inheritance of the associated component.

Inherited

Ottiene un valore che indica se questo componente è ereditato.Gets a value indicating whether this component is inherited.

ParentComponent

Ottiene il componente padre per la finestra di progettazione.Gets the parent component for this designer.

ShadowProperties

Ottiene un insieme di valori di proprietà che eseguono l'override delle impostazioni utente.Gets a collection of property values that override user settings.

Verbs

Ottiene i verbi in fase di progettazione supportati dal componente associato alla finestra di progettazione.Gets the design-time verbs supported by the component that is associated with the designer.

Metodi

Dispose()

Rilascia tutte le risorse usate da ComponentDesigner.Releases all resources used by the ComponentDesigner.

Dispose(Boolean)

Rilascia le risorse non gestite usate da ComponentDesigner e, facoltativamente, le risorse gestite.Releases the unmanaged resources used by the ComponentDesigner and optionally releases the managed resources.

DoDefaultAction()

Crea una firma di metodo nel file di codice sorgente per l'evento predefinito sul componente e sposta il cursore dell'utente in tale posizione.Creates a method signature in the source code file for the default event on the component and navigates the user's cursor to that location.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
Finalize()

Esegue un tentativo di liberare risorse chiamando Dispose(false) prima che l'oggetto venga recuperato dalla procedura di Garbage Collection.Attempts to free resources by calling Dispose(false) before the object is reclaimed by garbage collection.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetService(Type)

Esegue un tentativo di recuperare il tipo di servizio specificato dal sito della modalità progettazione del componente della finestra di progettazione.Attempts to retrieve the specified type of service from the design mode site of the designer's component.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
Initialize(IComponent)

Prepara la finestra di progettazione per la visualizzazione, la modifica e la progettazione del componente specificato.Prepares the designer to view, edit, and design the specified component.

InitializeExistingComponent(IDictionary)

Reinizializza un componente esistente.Reinitializes an existing component.

InitializeNewComponent(IDictionary)

Inizializza un nuovo componente creato.Initializes a newly created component.

InitializeNonDefault()

Inizializza le impostazioni relative a un componente importato già inizializzato per impostazioni diverse da quelle predefinite.Initializes the settings for an imported component that is already initialized to settings other than the defaults.

InvokeGetInheritanceAttribute(ComponentDesigner)

Ottiene l'oggetto InheritanceAttribute dell'oggetto ComponentDesigner specificato.Gets the InheritanceAttribute of the specified ComponentDesigner.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
OnSetComponentDefaults()

Imposta le proprietà predefinite relative al componente.Sets the default properties for the component.

PostFilterAttributes(IDictionary)

Consente a una finestra di progettazione di modificare o rimuovere elementi dall'insieme di attributi esposti tramite un oggetto TypeDescriptor.Allows a designer to change or remove items from the set of attributes that it exposes through a TypeDescriptor.

PostFilterEvents(IDictionary)

Consente a una finestra di progettazione di modificare o rimuovere elementi dal gruppo di eventi esposti tramite un oggetto TypeDescriptor.Allows a designer to change or remove items from the set of events that it exposes through a TypeDescriptor.

PostFilterProperties(IDictionary)

Consente a una finestra di progettazione di modificare o rimuovere elementi dall'insieme di proprietà esposte tramite un oggetto TypeDescriptor.Allows a designer to change or remove items from the set of properties that it exposes through a TypeDescriptor.

PreFilterAttributes(IDictionary)

Consente a una finestra di progettazione di aggiungere un insieme di attributi che vengono esposti tramite un oggetto TypeDescriptor.Allows a designer to add to the set of attributes that it exposes through a TypeDescriptor.

PreFilterEvents(IDictionary)

Consente a una finestra di progettazione di aggiungere un insieme di eventi che vengono esposti tramite un oggetto TypeDescriptor.Allows a designer to add to the set of events that it exposes through a TypeDescriptor.

PreFilterProperties(IDictionary)

Consente a una finestra di progettazione di aggiungere un insieme di proprietà che vengono esposte tramite un oggetto TypeDescriptor.Allows a designer to add to the set of properties that it exposes through a TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Notifica all'oggetto IComponentChangeService che questo componente è stato modificato.Notifies the IComponentChangeService that this component has been changed.

RaiseComponentChanging(MemberDescriptor)

Notifica all'oggetto IComponentChangeService che questo componente sta per essere modificato.Notifies the IComponentChangeService that this component is about to be changed.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IDesignerFilter.PostFilterAttributes(IDictionary)

Per una descrizione di questo membro, vedere il metodo PostFilterAttributes(IDictionary).For a description of this member, see the PostFilterAttributes(IDictionary) method.

IDesignerFilter.PostFilterEvents(IDictionary)

Per una descrizione di questo membro, vedere il metodo PostFilterEvents(IDictionary).For a description of this member, see the PostFilterEvents(IDictionary) method.

IDesignerFilter.PostFilterProperties(IDictionary)

Per una descrizione di questo membro, vedere il metodo PostFilterProperties(IDictionary).For a description of this member, see the PostFilterProperties(IDictionary) method.

IDesignerFilter.PreFilterAttributes(IDictionary)

Per una descrizione di questo membro, vedere il metodo PreFilterAttributes(IDictionary).For a description of this member, see the PreFilterAttributes(IDictionary) method.

IDesignerFilter.PreFilterEvents(IDictionary)

Per una descrizione di questo membro, vedere il metodo PreFilterEvents(IDictionary).For a description of this member, see the PreFilterEvents(IDictionary) method.

IDesignerFilter.PreFilterProperties(IDictionary)

Per una descrizione di questo membro, vedere il metodo PreFilterProperties(IDictionary).For a description of this member, see the PreFilterProperties(IDictionary) method.

ITreeDesigner.Children

Per una descrizione di questo membro, vedere la proprietà Children.For a description of this member, see the Children property.

ITreeDesigner.Parent

Per una descrizione di questo membro, vedere la proprietà Parent.For a description of this member, see the Parent property.

Si applica a

Vedi anche