ControlDesigner Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Breidt het gedrag van de ontwerpmodus van een 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
- Overname
- Afgeleid
Voorbeelden
De volgende voorbeeld-implementatie ControlDesigner demonstreert de verwerking MouseEnter en MouseLeave gebeurtenissen, het tekenen van een besturingselement uit ontwerpcode en het gebruik van een deel van de IDesignerFilter interface om een eigenschap toe te voegen voor het besturingselement tijdens het ontwerp. De volgende voorbeeldcode bevat een ontwerper en een voorbeeldgebruikersbeheer dat is gekoppeld aan de ontwerpfunctie. Als u dit voorbeeld wilt bouwen, compileert u het voorbeeld in een klassebibliotheek, voegt u een verwijzing naar de bibliotheek toe aan een Windows Forms project, voegt u het besturingselement toe aan de werkset en voegt u een exemplaar van het besturingselement toe aan uw formulier. Wanneer u het besturingselement aanwijst, wordt de binnenste omtrek van het besturingselement gemarkeerd en komt de kleur die wordt gebruikt om de omtrek te tekenen overeen met de OutlineColor eigenschap die de ontwerper heeft toegevoegd aan de eigenschappen die voor het besturingselement worden vermeld.
Voeg een verwijzing toe naar de System.Design assembly om het codevoorbeeld te compileren.
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
Opmerkingen
ControlDesigner biedt een basisklasse voor ontwerpers van onderdelen die zijn afgeleid van Control. Naast de methoden en functionaliteit die zijn overgenomen van de ComponentDesigner klasse, ControlDesigner biedt u aanvullende methoden ter ondersteuning van het uitbreiden en wijzigen van het gedrag van een gekoppelde Control tijdens het ontwerp.
U kunt een ontwerper koppelen aan een type met behulp van een DesignerAttribute. Zie Uitbreiden Design-Time Ondersteuning voor een overzicht van het aanpassen van ontwerptijdgedrag.
Constructors
| Name | Description |
|---|---|
| ControlDesigner() |
Initialiseert een nieuw exemplaar van de ControlDesigner klasse. |
Velden
| Name | Description |
|---|---|
| accessibilityObj |
Hiermee geeft u het toegankelijkheidsobject voor de ontwerpfunctie. |
| InvalidPoint |
Hiermee definieert u een lokaal Point dat de waarden van een ongeldige Pointwaarde vertegenwoordigt. |
Eigenschappen
| Name | Description |
|---|---|
| AccessibilityObject |
Hiermee wordt de AccessibleObject toegewezen aan het besturingselement opgehaald. |
| ActionLists |
Hiermee haalt u de ontwerptijdactielijsten op die worden ondersteund door het onderdeel dat is gekoppeld aan de ontwerpfunctie. (Overgenomen van ComponentDesigner) |
| AssociatedComponents |
Hiermee haalt u de verzameling onderdelen op die zijn gekoppeld aan het onderdeel dat wordt beheerd door de ontwerper. |
| AutoResizeHandles |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de toewijzing van de formaatgreep afhankelijk is van de waarde van de AutoSize eigenschap. |
| BehaviorService |
Hiermee haalt u de BehaviorService uit de ontwerpomgeving op. |
| Component |
Hiermee haalt u het onderdeel op dat deze ontwerpfunctie ontwerpt. (Overgenomen van ComponentDesigner) |
| Control |
Hiermee haalt u het besturingselement op dat de ontwerpfunctie ontwerpt. |
| EnableDragRect |
Hiermee wordt een waarde opgehaald die aangeeft of rechthoeken met slepen kunnen worden getekend op dit ontwerponderdeel. |
| InheritanceAttribute |
Haalt de InheritanceAttribute ontwerper op. |
| InheritanceAttribute |
Hiermee wordt een kenmerk opgehaald dat het type overname van het gekoppelde onderdeel aangeeft. (Overgenomen van ComponentDesigner) |
| Inherited |
Hiermee wordt een waarde opgehaald die aangeeft of dit onderdeel is overgenomen. (Overgenomen van ComponentDesigner) |
| ParentComponent |
Hiermee haalt u het bovenliggende onderdeel voor de ControlDesigner. |
| ParticipatesWithSnapLines |
Hiermee wordt een waarde opgehaald die aangeeft of de uitlijning van de ControlDesigner uitlijning tijdens een sleepbewerking wordt toegestaan. |
| SelectionRules |
Hiermee haalt u de selectieregels op die de bewegingsmogelijkheden van een onderdeel aangeven. |
| ShadowProperties |
Hiermee haalt u een verzameling eigenschapswaarden op waarmee gebruikersinstellingen worden overschreven. (Overgenomen van ComponentDesigner) |
| SnapLines |
Hiermee haalt u een lijst met objecten op die SnapLine belangrijke uitlijningspunten voor dit besturingselement vertegenwoordigen. |
| Verbs |
Hiermee haalt u de ontwerptijdwoorden op die worden ondersteund door het onderdeel dat is gekoppeld aan de ontwerpfunctie. (Overgenomen van ComponentDesigner) |
Methoden
| Name | Description |
|---|---|
| BaseWndProc(Message) |
Verwerkt Windows berichten. |
| CanBeParentedTo(IDesigner) |
Geeft aan of het besturingselement van deze ontwerper kan worden gekoppeld door het besturingselement van de opgegeven ontwerper. |
| DefWndProc(Message) |
Biedt standaardverwerking voor Windows berichten. |
| DisplayError(Exception) |
Geeft informatie weer over de opgegeven uitzondering voor de gebruiker. |
| Dispose() |
Alle resources die worden gebruikt door de ComponentDesigner. (Overgenomen van ComponentDesigner) |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die worden gebruikt door de ControlDesigner beheerde resources en brengt eventueel de beheerde resources vrij. |
| DoDefaultAction() |
Hiermee maakt u een methodehandtekening in het broncodebestand voor de standaard gebeurtenis in het onderdeel en navigeert u door de cursor van de gebruiker naar die locatie. (Overgenomen van ComponentDesigner) |
| EnableDesignMode(Control, String) |
Hiermee schakelt u ontwerptijdfunctionaliteit in voor een onderliggend besturingselement. |
| EnableDragDrop(Boolean) |
Hiermee schakelt u ondersteuning voor slepen en neerzetten in of uit voor het besturingselement dat wordt ontworpen. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetControlGlyph(GlyphSelectionType) |
Retourneert een ControlBodyGlyph weergave van de grenzen van dit besturingselement. |
| GetGlyphs(GlyphSelectionType) |
Hiermee haalt u een verzameling objecten op die Glyph de selectieranden vertegenwoordigen en greepgrepen voor een standaard besturingselement. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetHitTest(Point) |
Geeft aan of een muisklik op het opgegeven punt moet worden verwerkt door het besturingselement. |
| GetService(Type) |
Hiermee wordt geprobeerd het opgegeven type service op te halen van de ontwerpmodussite van het onderdeel van de ontwerper. (Overgenomen van ComponentDesigner) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| HookChildControls(Control) |
Stuurt berichten van de onderliggende besturingselementen van het opgegeven besturingselement naar de ontwerpfunctie. |
| Initialize(IComponent) |
Initialiseert de ontwerpfunctie met het opgegeven onderdeel. |
| InitializeExistingComponent(IDictionary) |
Initialiseert een bestaand onderdeel opnieuw. |
| InitializeNewComponent(IDictionary) |
Initialiseert een nieuw gemaakt onderdeel. |
| InitializeNonDefault() |
Initialiseert eigenschappen van het besturingselement op niet-standaardwaarden. |
| InitializeNonDefault() |
Verouderd.
Initialiseert de instellingen voor een geïmporteerd onderdeel dat al is geïnitialiseerd naar andere instellingen dan de standaardinstellingen. (Overgenomen van ComponentDesigner) |
| InternalControlDesigner(Int32) |
Retourneert de ontwerpfunctie voor interne controle met de opgegeven index in de ControlDesigner. |
| InvokeGetInheritanceAttribute(ComponentDesigner) |
Hiermee haalt u de InheritanceAttribute opgegeven ComponentDesigner. (Overgenomen van ComponentDesigner) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| NumberOfInternalControlDesigners() |
Retourneert het aantal interne controleontwerpers in de ControlDesigner. |
| OnContextMenu(Int32, Int32) |
Toont het contextmenu en biedt een mogelijkheid om extra verwerking uit te voeren wanneer het contextmenu op het punt staat te worden weergegeven. |
| OnCreateHandle() |
Biedt een mogelijkheid om direct na het maken van de besturingsgreep extra verwerking uit te voeren. |
| OnDragComplete(DragEventArgs) |
Ontvangt een aanroep om een slepen-en-neerzetten-bewerking op te schonen. |
| OnDragDrop(DragEventArgs) |
Ontvangt een aanroep wanneer een object met slepen en neerzetten wordt neergezet in de ontwerpweergave van het besturingselement. |
| OnDragEnter(DragEventArgs) |
Ontvangt een aanroep wanneer een bewerking voor slepen en neerzetten in de ontwerpweergave van het besturingselement wordt geopend. |
| OnDragLeave(EventArgs) |
Ontvangt een aanroep wanneer een slepen-en-neerzetten-bewerking de ontwerpweergave van het besturingselement verlaat. |
| OnDragOver(DragEventArgs) |
Ontvangt een aanroep wanneer een object slepen en neerzetten wordt gesleept over de ontwerpweergave van het besturingselement. |
| OnGiveFeedback(GiveFeedbackEventArgs) |
Ontvangt een aanroep wanneer er een slepen-en-neerzetten-bewerking wordt uitgevoerd om visuele aanwijzingen te bieden op basis van de locatie van de muis terwijl er een sleepbewerking wordt uitgevoerd. |
| OnMouseDragBegin(Int32, Int32) |
Ontvangt een aanroep als reactie op de linkermuisknop die wordt ingedrukt en vastgehouden tijdens het onderdeel. |
| OnMouseDragEnd(Boolean) |
Ontvangt een aanroep aan het einde van een bewerking voor slepen en neerzetten om de bewerking te voltooien of te annuleren. |
| OnMouseDragMove(Int32, Int32) |
Ontvangt een aanroep voor elke beweging van de muis tijdens een slepen-en-neerzetten-bewerking. |
| OnMouseEnter() |
Ontvangt een aanroep wanneer de muis het besturingselement voor het eerst binnenkomt. |
| OnMouseHover() |
Ontvangt een aanroep nadat de muisaanwijzer over het besturingselement beweegt. |
| OnMouseLeave() |
Ontvangt een aanroep wanneer de muis het besturingselement voor het eerst binnenkomt. |
| OnPaintAdornments(PaintEventArgs) |
Ontvangt een aanroep wanneer het besturingselement dat door de ontwerper wordt beheerd, zijn oppervlak heeft geschilderd, zodat de ontwerper extra decoraties boven op het besturingselement kan schilderen. |
| OnSetComponentDefaults() |
Verouderd.
Aangeroepen wanneer de ontwerper wordt geïnitialiseerd. |
| OnSetCursor() |
Elke keer dat de cursor moet worden ingesteld, ontvangt u een aanroep. |
| PostFilterAttributes(IDictionary) |
Hiermee kan een ontwerper items wijzigen of verwijderen uit de set kenmerken die worden weergegeven via een TypeDescriptor. (Overgenomen van ComponentDesigner) |
| PostFilterEvents(IDictionary) |
Hiermee kan een ontwerper items wijzigen of verwijderen uit de reeks gebeurtenissen die worden weergegeven via een TypeDescriptor. (Overgenomen van ComponentDesigner) |
| PostFilterProperties(IDictionary) |
Hiermee kan een ontwerper items wijzigen of verwijderen uit de set eigenschappen die deze beschikbaar maakt via een TypeDescriptor. (Overgenomen van ComponentDesigner) |
| PreFilterAttributes(IDictionary) |
Hiermee kan een ontwerper toevoegen aan de set kenmerken die worden weergegeven via een TypeDescriptor. (Overgenomen van ComponentDesigner) |
| PreFilterEvents(IDictionary) |
Hiermee kan een ontwerper toevoegen aan de set gebeurtenissen die worden weergegeven via een TypeDescriptor. (Overgenomen van ComponentDesigner) |
| PreFilterProperties(IDictionary) |
Hiermee past u de set eigenschappen aan die het onderdeel beschikbaar maakt via een TypeDescriptor. |
| RaiseComponentChanged(MemberDescriptor, Object, Object) |
Hiermee wordt aangegeven IComponentChangeService dat dit onderdeel is gewijzigd. (Overgenomen van ComponentDesigner) |
| RaiseComponentChanging(MemberDescriptor) |
Hiermee wordt aangegeven IComponentChangeService dat dit onderdeel binnenkort wordt gewijzigd. (Overgenomen van ComponentDesigner) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| UnhookChildControls(Control) |
Stuurt berichten voor de onderliggende elementen van het opgegeven besturingselement naar elk besturingselement in plaats van naar een bovenliggende ontwerper. |
| WndProc(Message) |
Hiermee worden Windows berichten verwerkt en optioneel naar het besturingselement gerouteerd. |