Partager via


ControlDesigner Classe

Définition

Étend le comportement en mode design de Control.

public ref class ControlDesigner : System::ComponentModel::Design::ComponentDesigner
public class ControlDesigner : System.ComponentModel.Design.ComponentDesigner
type ControlDesigner = class
    inherit ComponentDesigner
Public Class ControlDesigner
Inherits ComponentDesigner
Héritage
ControlDesigner
Dérivé

Exemples

L’exemple ControlDesigner d’implémentation suivant illustre la gestion et MouseEnterMouseLeave les événements, en s’appuyant sur un contrôle à partir du code du concepteur et en utilisant une partie de l’interface IDesignerFilter pour ajouter une propriété pour le contrôle au moment de la conception. L’exemple de code suivant contient un concepteur et un exemple de contrôle utilisateur associé au concepteur. Pour générer cet exemple, compilez l’exemple dans une bibliothèque de classes, ajoutez une référence à la bibliothèque à un projet Windows Forms, ajoutez le contrôle à la boîte à outils et ajoutez une instance du contrôle à votre formulaire. Lorsque vous pointez vers le contrôle, le contour interne du périmètre du contrôle est mis en surbrillance et la couleur utilisée pour dessiner le contour correspond à la OutlineColor propriété que le concepteur a ajoutée aux propriétés répertoriées pour le contrôle.

Ajoutez une référence à l’assembly System.Design pour compiler l’exemple de code.

using namespace System;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Collections;
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::Design;
using namespace System::Security::Permissions;

   public ref class TestControlDesigner: public System::Windows::Forms::Design::ControlDesigner
   {
   private:
      bool mouseover;
      Color lineColor;

   public:

      property Color OutlineColor 
      {
         Color get()
         {
            return lineColor;
         }

         void set( Color value )
         {
            lineColor = value;
         }

      }
      TestControlDesigner()
      {
         mouseover = false;
         lineColor = Color::White;
      }

   protected:
      virtual void OnMouseEnter() override
      {
         this->mouseover = true;
         this->Control->Refresh();
      }

      virtual void OnMouseLeave() override
      {
         this->mouseover = false;
         this->Control->Refresh();
      }

      virtual void OnPaintAdornments( System::Windows::Forms::PaintEventArgs^ pe ) override
      {
         if ( this->mouseover )
                  pe->Graphics->DrawRectangle( gcnew Pen( gcnew SolidBrush( this->lineColor ),6 ), 0, 0, this->Control->Size.Width, this->Control->Size.Height );
      }

   protected:
      [ReflectionPermission(SecurityAction::Demand, Flags=ReflectionPermissionFlag::MemberAccess)]
      virtual void PreFilterProperties( System::Collections::IDictionary^ properties ) override
      {
         properties->Add( "OutlineColor", TypeDescriptor::CreateProperty( TestControlDesigner::typeid, "OutlineColor", System::Drawing::Color::typeid, nullptr ) );
      }
   };

   [DesignerAttribute(TestControlDesigner::typeid)]
   public ref class TestControl: public System::Windows::Forms::UserControl
   {
   private:
      System::ComponentModel::Container^ components;

   public:
      TestControl()
      {
         components = gcnew System::ComponentModel::Container;
      }

   protected:
      ~TestControl()
      {
         if ( components != nullptr )
         {
            delete components;
         }
      }
   };
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace ControlDesignerExample
{
    // ExampleControlDesigner is an example control designer that 
    // demonstrates basic functions of a ControlDesigner. 
    public class ExampleControlDesigner  : System.Windows.Forms.Design.ControlDesigner
    {
        // This Boolean state reflects whether the mouse is over the control.
        private bool mouseover = false;
        // This color is a private field for the OutlineColor property.
        private Color lineColor = Color.White;

        // This color is used to outline the control when the mouse is 
        // over the control.
        public Color OutlineColor
        {
            get
            {
                return lineColor;
            }
            set
            {
                lineColor = value;
            }
        }

        public ExampleControlDesigner()
        {
        }

        // Sets a value and refreshes the control's display when the 
        // mouse position enters the area of the control.
        protected override void OnMouseEnter()
        {
            this.mouseover = true;
            this.Control.Refresh();
        }    

        // Sets a value and refreshes the control's display when the 
        // mouse position enters the area of the control.        
        protected override void OnMouseLeave()
        {
            this.mouseover = false;            
            this.Control.Refresh();
        }        
        
        // Draws an outline around the control when the mouse is 
        // over the control.    
        protected override void OnPaintAdornments(System.Windows.Forms.PaintEventArgs pe)
        {
            if (this.mouseover)
            {
                pe.Graphics.DrawRectangle(
                    new Pen(new SolidBrush(this.lineColor), 6), 
                    0, 
                    0, 
                    this.Control.Size.Width, 
                    this.Control.Size.Height);
            }
        }

        // Adds a property to this designer's control at design time 
        // that indicates the outline color to use. 
        // The DesignOnlyAttribute ensures that the OutlineColor
        // property is not serialized by the designer.
        protected override void PreFilterProperties(System.Collections.IDictionary properties)
        {
            PropertyDescriptor pd = TypeDescriptor.CreateProperty(
                typeof(ExampleControlDesigner), 
                "OutlineColor",
                typeof(System.Drawing.Color),
                new Attribute[] { new DesignOnlyAttribute(true) });

            properties.Add("OutlineColor", pd);
        }
    }

    // This example control demonstrates the ExampleControlDesigner.
    [DesignerAttribute(typeof(ExampleControlDesigner))]
    public class ExampleControl : System.Windows.Forms.UserControl
    {        
        private System.ComponentModel.Container components = null;

        public ExampleControl()
        {
            components = new System.ComponentModel.Container();
        }

        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if( components != null )
                components.Dispose();
            }
            base.Dispose( disposing );
        }
    }
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Collections
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.Design

Namespace ControlDesignerExample
    _
    ' ExampleControlDesigner is an example control designer that 
    ' demonstrates basic functions of a ControlDesigner.
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
    Public Class ExampleControlDesigner
        Inherits System.Windows.Forms.Design.ControlDesigner

        ' This boolean state reflects whether the mouse is over the control.
        Private mouseover As Boolean = False
        ' This color is a private field for the OutlineColor property.
        Private lineColor As Color = Color.White

        ' This color is used to outline the control when the mouse is 
        ' over the control.
        Public Property OutlineColor() As Color
            Get
                Return lineColor
            End Get
            Set(ByVal Value As Color)
                lineColor = Value
            End Set
        End Property

        Public Sub New()
        End Sub

        ' Sets a value and refreshes the control's display when the 
        ' mouse position enters the area of the control.
        Protected Overrides Sub OnMouseEnter()
            Me.mouseover = True
            Me.Control.Refresh()
        End Sub

        ' Sets a value and refreshes the control's display when the 
        ' mouse position enters the area of the control.		
        Protected Overrides Sub OnMouseLeave()
            Me.mouseover = False
            Me.Control.Refresh()
        End Sub

        ' Draws an outline around the control when the mouse is 
        ' over the control.	
        Protected Overrides Sub OnPaintAdornments(ByVal pe As System.Windows.Forms.PaintEventArgs)
            If Me.mouseover Then
                pe.Graphics.DrawRectangle(New Pen(New SolidBrush(Me.lineColor), 6), 0, 0, Me.Control.Size.Width, Me.Control.Size.Height)
            End If
        End Sub

        ' Adds a property to this designer's control at design time 
        ' that indicates the outline color to use.
        ' The DesignOnlyAttribute ensures that the OutlineColor
        ' property is not serialized by the designer.
        Protected Overrides Sub PreFilterProperties(ByVal properties As System.Collections.IDictionary)
            Dim pd As PropertyDescriptor = TypeDescriptor.CreateProperty( _
            GetType(ExampleControlDesigner), _
            "OutlineColor", _
            GetType(System.Drawing.Color), _
            New Attribute() {New DesignOnlyAttribute(True)})

            properties.Add("OutlineColor", pd)
        End Sub
    End Class

    ' This example control demonstrates the ExampleControlDesigner.
    <DesignerAttribute(GetType(ExampleControlDesigner))> _
     Public Class ExampleControl
        Inherits System.Windows.Forms.UserControl
        Private components As System.ComponentModel.Container = Nothing

        Public Sub New()
            components = New System.ComponentModel.Container()
        End Sub

        Protected Overloads Sub Dispose(ByVal disposing As Boolean)
            If disposing Then
                If (components IsNot Nothing) Then
                    components.Dispose()
                End If
            End If
            MyBase.Dispose(disposing)
        End Sub
    End Class

End Namespace

Remarques

ControlDesigner fournit une classe de base pour les concepteurs de composants qui dérivent de Control. En plus des méthodes et fonctionnalités héritées de la ComponentDesigner classe, ControlDesigner fournit des méthodes supplémentaires pour prendre en charge l’extension et la modification du comportement d’un associé Control 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 du temps de conception, consultez Extension de la prise en charge Design-Time.

Constructeurs

ControlDesigner()

Initialise une nouvelle instance de la classe ControlDesigner.

Champs

accessibilityObj

Spécifie l'objet d'accessibilité pour le concepteur.

InvalidPoint

Définit un objet Point local qui représente les valeurs d'un objet Point non valide.

Propriétés

AccessibilityObject

Obtient le AccessibleObject assigné au contrôle.

ActionLists

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

(Hérité de ComponentDesigner)
AssociatedComponents

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

AutoResizeHandles

Obtient ou définit une valeur indiquant si l'allocation de poignée de redimensionnement dépend de la valeur de la propriété AutoSize.

BehaviorService

Obtient le BehaviorService de l'environnement de design.

Component

Obtient le composant qui est créé par ce concepteur.

(Hérité de ComponentDesigner)
Control

Obtient le contrôle qui est créé par le concepteur.

EnableDragRect

Obtient une valeur indiquant si des rectangles de déplacement peuvent être dessinés sur ce composant de concepteur.

InheritanceAttribute

Obtient le InheritanceAttribute du concepteur.

InheritanceAttribute

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

(Hérité de ComponentDesigner)
Inherited

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

(Hérité de ComponentDesigner)
ParentComponent

Obtient le composant parent de ControlDesigner.

ParentComponent

Obtient le composant parent de ce concepteur.

(Hérité de ComponentDesigner)
ParticipatesWithSnapLines

Obtient une valeur indiquant si le ControlDesigner doit autoriser l'alignement sur les lignes d'alignement (SnapLines) pendant une opération glisser.

SelectionRules

Obtient les règles de sélection qui indiquent les possibilités de mouvement d'un composant.

SetTextualDefaultProperty

Étend le comportement en mode design de Control.

(Hérité de ComponentDesigner)
ShadowProperties

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

(Hérité de ComponentDesigner)
SnapLines

Obtient une liste d'objets SnapLine qui représentent des points d'alignement significatifs pour ce contrôle.

Verbs

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

(Hérité de ComponentDesigner)

Méthodes

BaseWndProc(Message)

Traite les messages Windows.

CanBeParentedTo(IDesigner)

Indique si le contrôle de ce concepteur peut être apparenté au contrôle du concepteur spécifié.

DefWndProc(Message)

Fournit le traitement par défaut pour les messages Windows.

DisplayError(Exception)

Affiche des informations sur l'exception spécifiée pour l'utilisateur.

Dispose()

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

(Hérité de ComponentDesigner)
Dispose(Boolean)

Libère les ressources non managées utilisées par ControlDesigner et libère éventuellement les ressources managées.

DoDefaultAction()

Crée une signature de méthode dans le fichier de code source de l'événement par défaut du composant et déplace le curseur de l'utilisateur jusqu'à cet emplacement.

(Hérité de ComponentDesigner)
EnableDesignMode(Control, String)

Active les fonctionnalités de design pour un contrôle enfant.

EnableDragDrop(Boolean)

Active ou désactive la prise en charge de la fonctionnalité glisser-déplacer pour le contrôle en cours de création.

Equals(Object)

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

(Hérité de Object)
GetControlGlyph(GlyphSelectionType)

Retourne un ControlBodyGlyph représentant les limites de ce contrôle.

GetGlyphs(GlyphSelectionType)

Obtient une collection d'objets Glyph qui représentent les bordures de sélection et les poignées de manipulation d'un contrôle standard.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetHitTest(Point)

Indique si le contrôle doit gérer un clic de souris à un emplacement spécifié.

GetService(Type)

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

(Hérité de ComponentDesigner)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
HookChildControls(Control)

Achemine les messages à partir des contrôles enfants du contrôle spécifié vers le concepteur.

Initialize(IComponent)

Initialise le concepteur avec le composant spécifié.

InitializeExistingComponent(IDictionary)

Réinitialise un composant existant.

InitializeExistingComponent(IDictionary)

Réinitialise un composant existant.

(Hérité de ComponentDesigner)
InitializeNewComponent(IDictionary)

Initialise un composant nouvellement créé.

InitializeNewComponent(IDictionary)

Initialise un composant nouvellement créé.

(Hérité de ComponentDesigner)
InitializeNonDefault()

Initialise les propriétés du contrôle dans une valeur non définie par défaut.

InitializeNonDefault()
Obsolète.
Obsolète.

Initialise les paramètres d'un composant importé qui est déjà initialisé pour utiliser des paramètres autres que ceux par défaut.

(Hérité de ComponentDesigner)
InternalControlDesigner(Int32)

Retourne le Concepteur de contrôles internes avec l'index spécifié dans ControlDesigner.

InvokeGetInheritanceAttribute(ComponentDesigner)

Obtient le InheritanceAttribute du ComponentDesigner spécifié.

(Hérité de ComponentDesigner)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
NumberOfInternalControlDesigners()

Retourne le nombre de Concepteurs de contrôles internes dans ControlDesigner.

OnContextMenu(Int32, Int32)

Affiche le menu contextuel et fournit une possibilité de traitement supplémentaire lorsque le menu contextuel est sur le point d'être affiché.

OnCreateHandle()

Fournit une possibilité de traitement supplémentaire immédiatement après la création du handle du contrôle.

OnDragComplete(DragEventArgs)

Reçoit un appel pour nettoyer une opération glisser-déplacer.

OnDragDrop(DragEventArgs)

Reçoit un appel lorsqu'un objet glissé est déplacé sur la vue de Concepteur de contrôles.

OnDragEnter(DragEventArgs)

Reçoit un appel lorsqu'une opération glisser-déplacer entre dans la vue de Concepteur de contrôles.

OnDragLeave(EventArgs)

Reçoit un appel lorsqu'une opération glisser-déplacer quitte la vue de Concepteur de contrôles.

OnDragOver(DragEventArgs)

Reçoit un appel lorsqu'un objet glissé est déplacé au-dessus de la vue de Concepteur de contrôles.

OnGiveFeedback(GiveFeedbackEventArgs)

Reçoit un appel durant une opération glisser-déplacer pour fournir des indications visuelles en fonction de la position du curseur de la souris tandis que l'opération glisser est en cours.

OnMouseDragBegin(Int32, Int32)

Reçoit un appel lorsque le bouton gauche de la souris est maintenu enfoncé au-dessus du composant.

OnMouseDragEnd(Boolean)

Reçoit un appel à la fin d'une opération glisser-déplacer pour terminer ou annuler l'opération.

OnMouseDragMove(Int32, Int32)

Reçoit un appel pour chaque mouvement de la souris pendant une opération glisser-déplacer.

OnMouseEnter()

Reçoit un appel lorsque la souris entre initialement dans le contrôle.

OnMouseHover()

Reçoit un appel après que la souris pointe sur le contrôle.

OnMouseLeave()

Reçoit un appel lorsque la souris entre initialement dans le contrôle.

OnPaintAdornments(PaintEventArgs)

Reçoit un appel lorsque le contrôle que le concepteur manage a peint sa surface de sorte que le concepteur puisse peindre d'autres motifs par-dessus le contrôle.

OnSetComponentDefaults()
Obsolète.
Obsolète.

Appelée quand le concepteur est initialisé.

OnSetCursor()

Reçoit un appel chaque fois que le curseur doit être défini.

PostFilterAttributes(IDictionary)

Permet à un concepteur de modifier ou de supprimer des éléments de l'ensemble d'attributs qu'il expose à l'aide d'un TypeDescriptor.

(Hérité de ComponentDesigner)
PostFilterEvents(IDictionary)

Permet à un concepteur de modifier ou de supprimer des éléments de l'ensemble d'événements à l'aide d'un TypeDescriptor.

(Hérité de ComponentDesigner)
PostFilterProperties(IDictionary)

Permet à un concepteur de modifier ou de supprimer des éléments de l'ensemble de propriétés qu'il expose à l'aide d'un TypeDescriptor.

(Hérité de ComponentDesigner)
PreFilterAttributes(IDictionary)

Permet à un concepteur d'ajouter des éléments à l'ensemble d'attributs qu'il expose à l'aide d'un TypeDescriptor.

(Hérité de ComponentDesigner)
PreFilterEvents(IDictionary)

Permet à un concepteur d'ajouter des éléments à l'ensemble d'événements qu'il expose à l'aide d'un TypeDescriptor.

(Hérité de ComponentDesigner)
PreFilterProperties(IDictionary)

Ajuste le jeu de propriétés exposées par le composant à l'aide de TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

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

(Hérité de ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

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

(Hérité de ComponentDesigner)
ToString()

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

(Hérité de Object)
UnhookChildControls(Control)

Achemine les messages pour les enfants du contrôle spécifié vers chaque contrôle plutôt que vers un concepteur parent.

WndProc(Message)

Traite les messages Windows et les achemine éventuellement vers le contrôle.

Implémentations d’interfaces explicites

IDesignerFilter.PostFilterAttributes(IDictionary)

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

(Hérité de ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

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

(Hérité de ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

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

(Hérité de ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

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

(Hérité de ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

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

(Hérité de ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

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

(Hérité de ComponentDesigner)
ITreeDesigner.Children

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

(Hérité de ComponentDesigner)
ITreeDesigner.Parent

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

(Hérité de ComponentDesigner)

S’applique à

Voir aussi