ControlDesigner Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
É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
- Dérivé
Exemples
L’exemple ControlDesigner d’implémentation suivant illustre la gestion et MouseEnter
MouseLeave
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. |