Partager via


ControlDesigner Classe

Définition

Étend le comportement du mode de conception d’un 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 d’implémentation ControlDesigner suivant illustre la gestion MouseEnter et MouseLeave les événements, le dessin d’un contrôle à partir du code du concepteur et l’utilisation d’une partie de l’interface IDesignerFilter pour ajouter une propriété pour le contrôle au moment du design. 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 plan 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. Outre les 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.

Constructeurs

Nom Description
ControlDesigner()

Initialise une nouvelle instance de la classe ControlDesigner.

Champs

Nom Description
accessibilityObj

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

InvalidPoint

Définit un local Point qui représente les valeurs d’un élément non valide Point.

Propriétés

Nom Description
AccessibilityObject

Obtient l’affectation AccessibleObject 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 handle de redimensionnement dépend de la valeur de la AutoSize propriété.

BehaviorService

Obtient l’environnement BehaviorService de conception.

Component

Obtient le composant que ce concepteur conçoit.

(Hérité de ComponentDesigner)
Control

Obtient le contrôle que le concepteur conçoit.

EnableDragRect

Obtient une valeur indiquant si les rectangles de glisser peuvent être dessinés sur ce composant du concepteur.

InheritanceAttribute

Obtient le InheritanceAttribute 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 pour le ControlDesigner.

ParticipatesWithSnapLines

Obtient une valeur indiquant si l’alignement ControlDesigner de la ligne d’alignement est autorisé pendant une opération de glissement.

SelectionRules

Obtient les règles de sélection qui indiquent les fonctionnalités de déplacement d’un composant.

SetTextualDefaultProperty

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

(Hérité de ComponentDesigner)
ShadowProperties

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

(Hérité de ComponentDesigner)
SnapLines

Obtient une liste d’objets représentant des points d’alignement SnapLine significatifs pour ce contrôle.

Verbs

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

(Hérité de ComponentDesigner)

Méthodes

Nom Description
BaseWndProc(Message)

Traite les messages Windows.

CanBeParentedTo(IDesigner)

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

DefWndProc(Message)

Fournit le traitement par défaut des messages Windows.

DisplayError(Exception)

Affiche des informations sur l’exception spécifiée à l’utilisateur.

Dispose()

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

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

Libère les ressources non managées utilisées par les ControlDesigner 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.

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

Active la fonctionnalité du temps de conception pour un contrôle enfant.

EnableDragDrop(Boolean)

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

Equals(Object)

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

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

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

GetGlyphs(GlyphSelectionType)

Obtient une collection d’objets représentant les bordures de Glyph sélection et les poignées de saisie pour un contrôle standard.

GetHashCode()

Sert de fonction de hachage par défaut.

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

Indique si un clic de souris au point spécifié doit être géré par le contrôle.

GetService(Type)

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

(Hérité de ComponentDesigner)
GetType()

Obtient la Type de l’instance actuelle.

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

Route les messages des contrôles enfants du contrôle spécifié vers le concepteur.

Initialize(IComponent)

Initialise le concepteur avec le composant spécifié.

InitializeExistingComponent(IDictionary)

Initialise à nouveau un composant existant.

InitializeNewComponent(IDictionary)

Initialise un composant nouvellement créé.

InitializeNonDefault()

Initialise les propriétés du contrôle sur toutes les valeurs non par défaut.

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.

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

Retourne le concepteur de contrôles interne avec l’index spécifié dans le ControlDesigner.

InvokeGetInheritanceAttribute(ComponentDesigner)

Obtient le InheritanceAttributeComponentDesigner.

(Hérité de ComponentDesigner)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
NumberOfInternalControlDesigners()

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

OnContextMenu(Int32, Int32)

Affiche le menu contextuel et offre la possibilité d’effectuer un traitement supplémentaire lorsque le menu contextuel est sur le point d’être affiché.

OnCreateHandle()

Offre la possibilité d’effectuer un traitement supplémentaire immédiatement après la création du handle de contrôle.

OnDragComplete(DragEventArgs)

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

OnDragDrop(DragEventArgs)

Reçoit un appel lorsqu’un objet glisser-déplacer est déposé dans la vue du concepteur de contrôles.

OnDragEnter(DragEventArgs)

Reçoit un appel lorsqu’une opération de glisser-déplacer entre en mode Concepteur de contrôles.

OnDragLeave(EventArgs)

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

OnDragOver(DragEventArgs)

Reçoit un appel lorsqu’un objet glisser-déplacer est déplacé sur la vue du concepteur de contrôles.

OnGiveFeedback(GiveFeedbackEventArgs)

Reçoit un appel lorsqu’une opération de glisser-déplacer est en cours pour fournir des signaux visuels en fonction de l’emplacement de la souris pendant qu’une opération de glissement est en cours.

OnMouseDragBegin(Int32, Int32)

Reçoit un appel en réponse au bouton gauche de la souris enfoncé et maintenu pendant que le composant est enfoncé.

OnMouseDragEnd(Boolean)

Reçoit un appel à la fin d’une opération de 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 de glisser-déplacer.

OnMouseEnter()

Reçoit un appel lorsque la souris entre d’abord 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 d’abord dans le contrôle.

OnPaintAdornments(PaintEventArgs)

Reçoit un appel lorsque le contrôle que le concepteur gère a peint sa surface afin que le concepteur puisse peindre des ornements supplémentaires sur le contrôle.

OnSetComponentDefaults()
Obsolète.
Obsolète.

Appelé lorsque 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 par le biais 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 qu’il expose par le biais 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 par le biais d’un TypeDescriptor.

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

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

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

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

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

Ajuste l’ensemble des propriétés exposées par le composant via un TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

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

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

Avertit que IComponentChangeService 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)

Route les messages pour les enfants du contrôle spécifié vers chaque contrôle plutôt qu’vers un concepteur parent.

WndProc(Message)

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

Implémentations d’interfaces explicites

Nom Description
IDesignerFilter.PostFilterAttributes(IDictionary)

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

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

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

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

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

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

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

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

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

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

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

(Hérité de ComponentDesigner)
ITreeDesigner.Children

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

(Hérité de ComponentDesigner)
ITreeDesigner.Parent

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

(Hérité de ComponentDesigner)

S’applique à

Voir aussi