Partager via


ComponentDesigner Classe

Définition

Étend le comportement du mode de conception d’un composant.

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
Héritage
ComponentDesigner
Dérivé
Implémente

Exemples

L’exemple de code suivant fournit un exemple ComponentDesigner d’implémentation et un exemple de composant associé au concepteur. Le concepteur implémente un remplacement de la Initialize méthode qui appelle la méthode de base Initialize , un remplacement de la DoDefaultAction méthode qui affiche une MessageBox fois le composant double-cliqué et un remplacement de l’accesseur Verbs de propriété qui fournit une commande de menu personnalisé DesignerVerb au menu contextuel du composant.

#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

Remarques

La ComponentDesigner classe de concepteur de base fournit un concepteur simple qui peut étendre le comportement d’un composant associé en mode création.

ComponentDesigner fournit une implémentation d’interface vide IDesignerFilter , dont les méthodes peuvent être substituées pour ajuster les attributs, les propriétés et les événements du composant associé au moment du design.

Vous pouvez associer un concepteur à un type à l’aide d’un DesignerAttribute. Pour obtenir une vue d’ensemble de la personnalisation du comportement au moment du design, consultez Extension de Design-Time support.

La ComponentDesigner classe implémente un comportement spécial pour les descripteurs de propriétés des composants hérités. Un type interne nommé InheritedPropertyDescriptor est utilisé par l’implémentation par défaut ComponentDesigner pour se trouver dans les propriétés héritées d’une classe de base. Il existe deux cas dans lesquels ces descripteurs de propriété sont ajoutés.

  1. À l’objet racine lui-même, qui est retourné par la IDesignerHost.RootComponent propriété, car vous héritez de sa classe de base.

  2. Pour les champs trouvés dans la classe de base de l’objet racine. Les champs publics et protégés de la classe de base sont ajoutés au concepteur afin qu’ils puissent être manipulés par l’utilisateur.

La InheritedPropertyDescriptor classe modifie la valeur par défaut d’une propriété, afin que la valeur par défaut soit la valeur actuelle à l’instanciation de l’objet. Cela est dû au fait que la propriété est héritée d’une autre instance. Le concepteur définit la réinitialisation de la valeur de propriété comme la définissant sur la valeur définie par la classe héritée. Cette valeur peut différer de la valeur par défaut stockée dans les métadonnées.

Constructeurs

Nom Description
ComponentDesigner()

Initialise une nouvelle instance de la classe ComponentDesigner.

Propriétés

Nom Description
ActionLists

Obtient les listes d’actions au moment du design prises en charge par le composant associé au concepteur.

AssociatedComponents

Obtient la collection de composants associés au composant géré par le concepteur.

Component

Obtient le composant que ce concepteur conçoit.

InheritanceAttribute

Obtient un attribut qui indique le type d’héritage du composant associé.

Inherited

Obtient une valeur indiquant si ce composant est hérité.

ParentComponent

Obtient le composant parent de ce concepteur.

SetTextualDefaultProperty

Étend le comportement du mode de conception d’un composant.

ShadowProperties

Obtient une collection de valeurs de propriété qui remplacent les paramètres utilisateur.

Verbs

Obtient les verbes au moment du design pris en charge par le composant associé au concepteur.

Méthodes

Nom Description
Dispose()

Libère toutes les ressources utilisées par le ComponentDesigner.

Dispose(Boolean)

Libère les ressources non managées utilisées par les ComponentDesigner ressources gérées et libère éventuellement les ressources managées.

DoDefaultAction()

Crée une signature de méthode dans le fichier de code source pour l’événement par défaut sur le composant et accède au curseur de l’utilisateur à cet emplacement.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
Finalize()

Tente de libérer des ressources en appelant Dispose(false) avant que l’objet ne soit récupéré par garbage collection.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetService(Type)

Tente de récupérer le type de service spécifié à partir du site en mode conception du composant du concepteur.

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
Initialize(IComponent)

Prépare le concepteur à afficher, modifier et concevoir le composant spécifié.

InitializeExistingComponent(IDictionary)

Réinitialise un composant existant.

InitializeNewComponent(IDictionary)

Initialise un composant nouvellement créé.

InitializeNonDefault()
Obsolète.
Obsolète.

Initialise les paramètres d’un composant importé qui est déjà initialisé dans des paramètres autres que les paramètres par défaut.

InvokeGetInheritanceAttribute(ComponentDesigner)

Obtient le InheritanceAttributeComponentDesigner.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
OnSetComponentDefaults()
Obsolète.
Obsolète.

Définit les propriétés par défaut du composant.

PostFilterAttributes(IDictionary)

Permet à un concepteur de modifier ou de supprimer des éléments de l’ensemble d’attributs qu’il expose par le biais d’un TypeDescriptor.

PostFilterEvents(IDictionary)

Permet à un concepteur de modifier ou de supprimer des éléments de l’ensemble d’événements qu’il expose par le biais d’un TypeDescriptor.

PostFilterProperties(IDictionary)

Permet à un concepteur de modifier ou de supprimer des éléments de l’ensemble de propriétés qu’il expose par le biais d’un TypeDescriptor.

PreFilterAttributes(IDictionary)

Permet à un concepteur d’ajouter à l’ensemble d’attributs qu’il expose par le biais d’un TypeDescriptor.

PreFilterEvents(IDictionary)

Permet à un concepteur d’ajouter à l’ensemble d’événements qu’il expose par le biais d’un TypeDescriptor.

PreFilterProperties(IDictionary)

Permet à un concepteur d’ajouter à l’ensemble de propriétés qu’il expose par le biais d’un TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Avertit que IComponentChangeService ce composant a été modifié.

RaiseComponentChanging(MemberDescriptor)

Avertit que IComponentChangeService ce composant est sur le point d’être modifié.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IDesignerFilter.PostFilterAttributes(IDictionary)

Pour obtenir une description de ce membre, consultez la PostFilterAttributes(IDictionary) méthode.

IDesignerFilter.PostFilterEvents(IDictionary)

Pour obtenir une description de ce membre, consultez la PostFilterEvents(IDictionary) méthode.

IDesignerFilter.PostFilterProperties(IDictionary)

Pour obtenir une description de ce membre, consultez la PostFilterProperties(IDictionary) méthode.

IDesignerFilter.PreFilterAttributes(IDictionary)

Pour obtenir une description de ce membre, consultez la PreFilterAttributes(IDictionary) méthode.

IDesignerFilter.PreFilterEvents(IDictionary)

Pour obtenir une description de ce membre, consultez la PreFilterEvents(IDictionary) méthode.

IDesignerFilter.PreFilterProperties(IDictionary)

Pour obtenir une description de ce membre, consultez la PreFilterProperties(IDictionary) méthode.

ITreeDesigner.Children

Pour obtenir une description de ce membre, consultez la Children propriété.

ITreeDesigner.Parent

Pour obtenir une description de ce membre, consultez la Parent propriété.

S’applique à

Voir aussi