ControlDesigner Klass

Definition

Utökar designlägesbeteendet för en 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
Arv
ControlDesigner
Härledda

Exempel

Följande exempelimplementering ControlDesigner visar hantering MouseEnter och MouseLeave händelser, som bygger på en kontroll från designerkod och använder en del av IDesignerFilter gränssnittet för att lägga till en egenskap för kontrollen vid designtillfället. Följande exempelkod innehåller en designer och en exempelanvändarkontroll som är associerad med designern. Kompilera exemplet till ett klassbibliotek, lägg till en referens till biblioteket i ett Windows Forms projekt, lägg till kontrollen i verktygslådan och lägg till en instans av kontrollen i formuläret för att skapa det här exemplet. När du pekar på kontrollen markeras kontrollens inre kontur och den färg som används för att rita konturen motsvarar den OutlineColor egenskap som designern har lagt till i egenskaperna som anges för kontrollen.

Lägg till en referens till System.Design sammansättning för att kompilera kodexemplet.

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

Kommentarer

ControlDesigner tillhandahåller en basklass för designers av komponenter som härleds från Control. Utöver de metoder och funktioner som ärvts från ComponentDesigner klassen finns ControlDesigner ytterligare metoder för att utöka och ändra beteendet för en associerad Control vid designtillfället.

Du kan associera en designer med en typ med hjälp av en DesignerAttribute. En översikt över hur du anpassar designtidsbeteendet finns i Utöka Design-Time Support.

Konstruktorer

Name Description
ControlDesigner()

Initierar en ny instans av ControlDesigner klassen.

Fält

Name Description
accessibilityObj

Anger hjälpmedelsobjektet för designern.

InvalidPoint

Definierar en lokal Point som representerar värdena för en ogiltig Point.

Egenskaper

Name Description
AccessibilityObject

Hämtar den AccessibleObject tilldelade kontrollen.

ActionLists

Hämtar de åtgärdslistor för designtid som stöds av komponenten som är associerad med designern.

(Ärvd från ComponentDesigner)
AssociatedComponents

Hämtar den samling komponenter som är associerade med komponenten som hanteras av designern.

AutoResizeHandles

Hämtar eller anger ett värde som anger om storleksändringshandtagsallokering beror på värdet för AutoSize egenskapen.

BehaviorService

BehaviorService Hämtar från designmiljön.

Component

Hämtar komponenten som designern designar.

(Ärvd från ComponentDesigner)
Control

Hämtar kontrollen som designern utformar.

EnableDragRect

Hämtar ett värde som anger om dra rektanglar kan ritas på den här designerkomponenten.

InheritanceAttribute

InheritanceAttribute Hämtar designerns.

InheritanceAttribute

Hämtar ett attribut som anger typen av arv för den associerade komponenten.

(Ärvd från ComponentDesigner)
Inherited

Hämtar ett värde som anger om den här komponenten ärvs.

(Ärvd från ComponentDesigner)
ParentComponent

Hämtar den överordnade komponenten ControlDesignerför .

ParticipatesWithSnapLines

Hämtar ett värde som anger om ControlDesigner kommer att tillåta fästlinjejustering under en dragåtgärd.

SelectionRules

Hämtar de urvalsregler som anger förflyttningsfunktionerna för en komponent.

SetTextualDefaultProperty

Utökar designlägesbeteendet för en Control.

(Ärvd från ComponentDesigner)
ShadowProperties

Hämtar en samling egenskapsvärden som åsidosätter användarinställningar.

(Ärvd från ComponentDesigner)
SnapLines

Hämtar en lista över SnapLine objekt som representerar betydande justeringspunkter för den här kontrollen.

Verbs

Hämtar designtidsverb som stöds av komponenten som är associerad med designern.

(Ärvd från ComponentDesigner)

Metoder

Name Description
BaseWndProc(Message)

Bearbetar Windows meddelanden.

CanBeParentedTo(IDesigner)

Anger om den här designerns kontroll kan överordnas av den angivna designerns kontroll.

DefWndProc(Message)

Tillhandahåller standardbearbetning för Windows meddelanden.

DisplayError(Exception)

Visar information om det angivna undantaget för användaren.

Dispose()

Släpper alla resurser som används av ComponentDesigner.

(Ärvd från ComponentDesigner)
Dispose(Boolean)

Släpper de ohanterade resurser som används av ControlDesigner och släpper eventuellt de hanterade resurserna.

DoDefaultAction()

Skapar en metodsignatur i källkodsfilen för standardhändelsen på komponenten och navigerar användarens markören till den platsen.

(Ärvd från ComponentDesigner)
EnableDesignMode(Control, String)

Aktiverar designtidsfunktioner för en underordnad kontroll.

EnableDragDrop(Boolean)

Aktiverar eller inaktiverar dra och släpp-stöd för kontrollen som utformas.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetControlGlyph(GlyphSelectionType)

Returnerar ett ControlBodyGlyph som representerar gränserna för den här kontrollen.

GetGlyphs(GlyphSelectionType)

Hämtar en samling Glyph objekt som representerar markeringskantlinjerna och handtag för en standardkontroll.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetHitTest(Point)

Anger om ett musklick vid den angivna punkten ska hanteras av kontrollen.

GetService(Type)

Försöker hämta den angivna typen av tjänst från designlägesplatsen för designerns komponent.

(Ärvd från ComponentDesigner)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
HookChildControls(Control)

Dirigerar meddelanden från de underordnade kontrollerna i den angivna kontrollen till designern.

Initialize(IComponent)

Initierar designern med den angivna komponenten.

InitializeExistingComponent(IDictionary)

Initierar om en befintlig komponent.

InitializeNewComponent(IDictionary)

Initierar en nyskapade komponent.

InitializeNonDefault()

Initierar kontrollens egenskaper till värden som inte är standardvärden.

InitializeNonDefault()
Föråldrad.
Föråldrad.

Initierar inställningarna för en importerad komponent som redan har initierats till andra inställningar än standardinställningarna.

(Ärvd från ComponentDesigner)
InternalControlDesigner(Int32)

Returnerar den interna kontrolldesignern med det angivna indexet ControlDesigneri .

InvokeGetInheritanceAttribute(ComponentDesigner)

Hämtar den InheritanceAttribute angivna ComponentDesigner.

(Ärvd från ComponentDesigner)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
NumberOfInternalControlDesigners()

Returnerar antalet interna kontrolldesigners i ControlDesigner.

OnContextMenu(Int32, Int32)

Visar snabbmenyn och ger möjlighet att utföra ytterligare bearbetning när snabbmenyn är på väg att visas.

OnCreateHandle()

Ger en möjlighet att utföra ytterligare bearbetning omedelbart efter att kontrollhandtaget har skapats.

OnDragComplete(DragEventArgs)

Tar emot ett anrop för att rensa en dra och släpp-åtgärd.

OnDragDrop(DragEventArgs)

Tar emot ett anrop när ett dra och släpp-objekt släpps till kontrolldesignervyn.

OnDragEnter(DragEventArgs)

Tar emot ett anrop när en dra och släpp-åtgärd kommer in i kontrolldesignervyn.

OnDragLeave(EventArgs)

Tar emot ett anrop när en dra och släpp-åtgärd lämnar kontrolldesignervyn.

OnDragOver(DragEventArgs)

Tar emot ett anrop när ett dra och släpp-objekt dras över kontrolldesignervyn.

OnGiveFeedback(GiveFeedbackEventArgs)

Tar emot ett anrop när en dra och släpp-åtgärd pågår för att tillhandahålla visuella tips baserat på musens plats medan en dragåtgärd pågår.

OnMouseDragBegin(Int32, Int32)

Tar emot ett anrop som svar på att den vänstra musknappen trycks in och hålls kvar över komponenten.

OnMouseDragEnd(Boolean)

Tar emot ett anrop i slutet av en dra och släpp-åtgärd för att slutföra eller avbryta åtgärden.

OnMouseDragMove(Int32, Int32)

Tar emot ett anrop för varje rörelse av musen under en dra och släpp-åtgärd.

OnMouseEnter()

Tar emot ett anrop när musen först anger kontrollen.

OnMouseHover()

Tar emot ett anrop när musen hovrar över kontrollen.

OnMouseLeave()

Tar emot ett anrop när musen först anger kontrollen.

OnPaintAdornments(PaintEventArgs)

Får ett samtal när kontrollen som designern hanterar har målat sin yta så att designern kan måla ytterligare utsmyckningar ovanpå kontrollen.

OnSetComponentDefaults()
Föråldrad.
Föråldrad.

Anropas när designern initieras.

OnSetCursor()

Tar emot ett anrop varje gång markören måste anges.

PostFilterAttributes(IDictionary)

Gör att en designer kan ändra eller ta bort objekt från den uppsättning attribut som den exponerar via en TypeDescriptor.

(Ärvd från ComponentDesigner)
PostFilterEvents(IDictionary)

Gör att en designer kan ändra eller ta bort objekt från den uppsättning händelser som den exponerar via en TypeDescriptor.

(Ärvd från ComponentDesigner)
PostFilterProperties(IDictionary)

Gör att en designer kan ändra eller ta bort objekt från den uppsättning egenskaper som den exponerar via en TypeDescriptor.

(Ärvd från ComponentDesigner)
PreFilterAttributes(IDictionary)

Gör att en designer kan lägga till i den uppsättning attribut som den exponerar via en TypeDescriptor.

(Ärvd från ComponentDesigner)
PreFilterEvents(IDictionary)

Tillåter att en designer lägger till i den uppsättning händelser som den exponerar via en TypeDescriptor.

(Ärvd från ComponentDesigner)
PreFilterProperties(IDictionary)

Justerar den uppsättning egenskaper som komponenten exponerar via en TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Meddelar IComponentChangeService att den här komponenten har ändrats.

(Ärvd från ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

IComponentChangeService Meddelar att den här komponenten håller på att ändras.

(Ärvd från ComponentDesigner)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
UnhookChildControls(Control)

Dirigerar meddelanden för underordnade till den angivna kontrollen till varje kontroll i stället för till en överordnad designer.

WndProc(Message)

Bearbetar Windows meddelanden och dirigerar dem till kontrollen.

Explicita gränssnittsimplementeringar

Name Description
IDesignerFilter.PostFilterAttributes(IDictionary)

En beskrivning av den här medlemmen finns i PostFilterAttributes(IDictionary) metoden .

(Ärvd från ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

En beskrivning av den här medlemmen finns i PostFilterEvents(IDictionary) metoden .

(Ärvd från ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

En beskrivning av den här medlemmen finns i PostFilterProperties(IDictionary) metoden .

(Ärvd från ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

En beskrivning av den här medlemmen finns i PreFilterAttributes(IDictionary) metoden .

(Ärvd från ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

En beskrivning av den här medlemmen finns i PreFilterEvents(IDictionary) metoden .

(Ärvd från ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

En beskrivning av den här medlemmen finns i PreFilterProperties(IDictionary) metoden .

(Ärvd från ComponentDesigner)
ITreeDesigner.Children

En beskrivning av den här medlemmen finns i egenskapen Children .

(Ärvd från ComponentDesigner)
ITreeDesigner.Parent

En beskrivning av den här medlemmen finns i egenskapen Parent .

(Ärvd från ComponentDesigner)

Gäller för

Se även