ControlDesigner Klas

Definitie

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

Expliciete interface-implementaties

Name Description
IDesignerFilter.PostFilterAttributes(IDictionary)

Zie de PostFilterAttributes(IDictionary) methode voor een beschrijving van dit lid.

(Overgenomen van ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

Zie de PostFilterEvents(IDictionary) methode voor een beschrijving van dit lid.

(Overgenomen van ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

Zie de PostFilterProperties(IDictionary) methode voor een beschrijving van dit lid.

(Overgenomen van ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

Zie de PreFilterAttributes(IDictionary) methode voor een beschrijving van dit lid.

(Overgenomen van ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

Zie de PreFilterEvents(IDictionary) methode voor een beschrijving van dit lid.

(Overgenomen van ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

Zie de PreFilterProperties(IDictionary) methode voor een beschrijving van dit lid.

(Overgenomen van ComponentDesigner)
ITreeDesigner.Children

Zie de Children eigenschap voor een beschrijving van dit lid.

(Overgenomen van ComponentDesigner)
ITreeDesigner.Parent

Zie de Parent eigenschap voor een beschrijving van dit lid.

(Overgenomen van ComponentDesigner)

Van toepassing op

Zie ook