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 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
- 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. |