ControlDesigner Klasse

Definition

Erweitert das Entwurfsmodusverhalten eines 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
Vererbung
ControlDesigner
Abgeleitet

Beispiele

Die folgende Beispielimplementierung ControlDesigner veranschaulicht die Behandlung MouseEnter und MouseLeave Ereignisse, die auf ein Steuerelement aus Designercode zeichnen und einen Teil der Schnittstelle verwenden, um eine Eigenschaft für das IDesignerFilter Steuerelement zur Entwurfszeit hinzuzufügen. Der folgende Beispielcode enthält einen Designer und ein Beispielbenutzersteuerelement, das dem Designer zugeordnet ist. Um dieses Beispiel zu erstellen, kompilieren Sie das Beispiel in eine Klassenbibliothek, fügen Sie dem Formular einen Verweis auf die Bibliothek zu einem Windows Forms-Projekt hinzu, fügen Sie das Steuerelement der Toolbox hinzu, und fügen Sie dem Formular eine Instanz des Steuerelements hinzu. Wenn Sie auf das Steuerelement zeigen, wird die innere Gliederung des Steuerelements hervorgehoben, und die Farbe, die zum Zeichnen der Gliederung verwendet wird, entspricht OutlineColor der Eigenschaft, die der Designer den für das Steuerelement aufgeführten Eigenschaften hinzugefügt hat.

Fügen Sie einen Verweis auf die System.Design-Assembly hinzu, um das Codebeispiel zu kompilieren.

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

Hinweise

ControlDesigner stellt eine Basisklasse für Designer von Komponenten bereit, die von Control. Zusätzlich zu den Methoden und Funktionen, die von der ComponentDesigner Klasse geerbt werden, werden zusätzliche Methoden bereitgestellt, ControlDesigner um das Erweitern und Ändern des Verhaltens einer zugeordneten Control Entwurfszeit zu unterstützen.

Sie können einem Designer einen Typ mit einem DesignerAttributeTyp zuordnen. Eine Übersicht über das Anpassen des Entwurfszeitverhaltens finden Sie unter Erweitern Design-Time Support.

Konstruktoren

ControlDesigner()

Initialisiert eine neue Instanz der ControlDesigner-Klasse.

Felder

accessibilityObj

Gibt das Objekt für die Barrierefreiheit für den Designer an.

InvalidPoint

Definiert einen lokalen Point, der die Werte eines ungültigen Point darstellt.

Eigenschaften

AccessibilityObject

Ruft das dem Steuerelement zugewiesene AccessibleObject ab.

ActionLists

Ruft die Entwurfszeit-Aktionslisten ab, die von der dem Designer zugeordneten Komponente unterstützt werden.

(Geerbt von ComponentDesigner)
AssociatedComponents

Ruft die Auflistung der Komponenten ab, die der durch den Designer verwalteten Komponente zugeordnet ist.

AutoResizeHandles

Ruft einen Wert ab oder oder legt einen Wert fest, der angibt, ob die Vergrößerungspunktreservierung vom Wert der AutoSize-Eigenschaft abhängt.

BehaviorService

Ruft den BehaviorService von der Entwurfsumgebung ab.

Component

Ruft die Komponente ab, die von diesem Designer entworfen wird.

(Geerbt von ComponentDesigner)
Control

Ruft das Steuerelement ab, das vom Designer entworfen wird.

EnableDragRect

Ruft einen Wert ab, der angibt, ob in dieser Designerkomponente Ziehrechtecke gezeichnet werden können.

InheritanceAttribute

Ruft das InheritanceAttribute für den Designer ab.

InheritanceAttribute

Ruft ein Attribut ab, das den Vererbungstyp der zugeordneten Komponente angibt.

(Geerbt von ComponentDesigner)
Inherited

Ruft einen Wert ab, der angibt, ob diese Komponente geerbt wurde.

(Geerbt von ComponentDesigner)
ParentComponent

Ruft die übergeordnete Komponente für den ControlDesigner ab.

ParentComponent

Ruft die übergeordnete Komponente für diesen Designer ab.

(Geerbt von ComponentDesigner)
ParticipatesWithSnapLines

Ruft einen Wert ab, der angibt, ob der ControlDesigner während eines Ziehvorgangs die Ausrichtung von Ausrichtungslinien ermöglicht.

SelectionRules

Ruft die Auswahlregeln ab, die die Bewegungsfunktionen einer Komponente angeben.

ShadowProperties

Ruft eine Auflistung von Eigenschaftswerten ab, die Benutzereinstellungen überschreiben.

(Geerbt von ComponentDesigner)
SnapLines

Ruft eine Liste mit SnapLine-Objekten ab, die signifikante Ausrichtungspunkte für dieses Steuerelement darstellen.

Verbs

Ruft die Entwurfszeitverben ab, die von der dem Designer zugeordneten Komponente unterstützt werden.

(Geerbt von ComponentDesigner)

Methoden

BaseWndProc(Message)

Verarbeitet Windows-Meldungen.

CanBeParentedTo(IDesigner)

Gibt an, ob das Steuerelement dieses Designers dem Steuerelement des angegebenen Designers untergeordnet sein kann.

DefWndProc(Message)

Stellt Standardverarbeitung für Windows-Meldungen bereit.

DisplayError(Exception)

Zeigt dem Benutzer Informationen über die angegebene Ausnahme an.

Dispose()

Gibt alle vom ComponentDesigner verwendeten Ressourcen frei.

(Geerbt von ComponentDesigner)
Dispose(Boolean)

Gibt die von ControlDesigner verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

DoDefaultAction()

Erstellt eine Methodensignatur in der Quellcodedatei für das Standardereignis der Komponente und verschiebt den Cursor des Benutzers an diese Position.

(Geerbt von ComponentDesigner)
EnableDesignMode(Control, String)

Aktiviert die Entwurfszeitfunktionen für ein untergeordnetes Steuerelement.

EnableDragDrop(Boolean)

Aktiviert oder deaktiviert die Drag & Drop-Unterstützung für das Steuerelement, das entworfen wird.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetControlGlyph(GlyphSelectionType)

Gibt ein ControlBodyGlyph zurück, das die Begrenzungen dieses Steuerelements darstellt.

GetGlyphs(GlyphSelectionType)

Ruft eine Auflistung von Glyph-Objekt ab, die die Markierungsrahmen und Ziehpunkte für ein Standardsteuerelement darstellen.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetHitTest(Point)

Gibt an, ob ein Mausklick auf den angegebenen Punkt von dem Steuerelement behandelt werden soll.

GetService(Type)

Versucht, den angegebenen Diensttyp von der Entwurfsmodussite der Komponente des Designers abzurufen.

(Geerbt von ComponentDesigner)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
HookChildControls(Control)

Leitet Meldungen von den untergeordneten Steuerelementen des angegebenen Steuerelements an den Designer weiter.

Initialize(IComponent)

Initialisiert den Designer mit der angegebenen Komponente.

InitializeExistingComponent(IDictionary)

Initialisiert eine vorhandene Komponente erneut.

InitializeExistingComponent(IDictionary)

Initialisiert eine vorhandene Komponente erneut.

(Geerbt von ComponentDesigner)
InitializeNewComponent(IDictionary)

Initialisiert eine neu erstellte Komponente.

InitializeNewComponent(IDictionary)

Initialisiert eine neu erstellte Komponente.

(Geerbt von ComponentDesigner)
InitializeNonDefault()

Initialisiert die Eigenschaften des Steuerelements auf einen beliebigen nicht standardmäßigen Wert.

InitializeNonDefault()
Veraltet.
Veraltet.

Initialisiert die Einstellungen für eine importierte Komponente, die bereits mit Einstellungen initialisiert wurde, die nicht der Standardeinstellung entsprechen.

(Geerbt von ComponentDesigner)
InternalControlDesigner(Int32)

Gibt den internen Steuerelement-Designer mit dem angegebenen Index im ControlDesigner zurück.

InvokeGetInheritanceAttribute(ComponentDesigner)

Ruft das InheritanceAttribute des angegebenen ComponentDesigner ab.

(Geerbt von ComponentDesigner)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
NumberOfInternalControlDesigners()

Gibt die Anzahl von internen Steuerelement-Designern im ControlDesigner zurück.

OnContextMenu(Int32, Int32)

Zeigt das Kontextmenü an und ermöglicht das Ausführen weiterer Verarbeitungsschritte, während das Kontextmenü gerade angezeigt wird.

OnCreateHandle()

Ermöglicht das Ausführen weiterer Schritte direkt nach dem Erstellen des Steuerelementhandles.

OnDragComplete(DragEventArgs)

Empfängt einen Aufruf, um einen Drag & Drop-Vorgang zu bereinigen.

OnDragDrop(DragEventArgs)

Empfängt einen Aufruf, wenn ein Drag & Drop-Objekt auf der Ansicht des Steuerelement-Designers abgelegt wird.

OnDragEnter(DragEventArgs)

Empfängt einen Aufruf, wenn ein Drag & Drop-Vorgang in der Ansicht des Steuerelement-Designers eintritt.

OnDragLeave(EventArgs)

Empfängt einen Aufruf, wenn ein Drag & Drop-Vorgang die Ansicht des Steuerelement-Designers verlässt.

OnDragOver(DragEventArgs)

Empfängt einen Aufruf, wenn ein Drag & Drop-Objekt über die Ansicht des Steuerelement-Designers gezogen wird.

OnGiveFeedback(GiveFeedbackEventArgs)

Empfängt einen Aufruf, wenn ein Drag & Drop-Vorgang ausgeführt wird, um visuelle Hinweise bereitzustellen, die auf der Position des Mauszeigers basieren, während ein Ziehvorgang ausgeführt wird.

OnMouseDragBegin(Int32, Int32)

Empfängt als Reaktion auf das Drücken und Halten der linken Maustaste einen Aufruf, während sich der Mauszeiger über der Komponente befindet.

OnMouseDragEnd(Boolean)

Empfängt einen Aufruf am Ende eines Drag & Drop-Vorgangs, um diesen abzuschließen oder abzubrechen.

OnMouseDragMove(Int32, Int32)

Empfängt einen Aufruf für jede Bewegung der Maus während eines Drag & Drop-Vorgangs.

OnMouseEnter()

Empfängt einen Aufruf, wenn der Mauszeiger zum ersten Mal in den Bereich des Steuerelements eintritt.

OnMouseHover()

Empfängt einen Aufruf, nachdem mit dem Mauszeiger auf das Steuerelement gezeigt wurde.

OnMouseLeave()

Empfängt einen Aufruf, wenn der Mauszeiger zum ersten Mal in den Bereich des Steuerelements eintritt.

OnPaintAdornments(PaintEventArgs)

Empfängt einen Aufruf, wenn die Oberfläche des vom Designer verwalteten Steuerelements gezeichnet ist, sodass der Designer die Darstellung des Steuerelements bearbeiten kann.

OnSetComponentDefaults()
Veraltet.
Veraltet.

Wird beim Initialisieren des Designers aufgerufen.

OnSetCursor()

Empfängt jedes Mal einen Aufruf, wenn der Cursor festgelegt werden muss.

PostFilterAttributes(IDictionary)

Ermöglicht einem Designer das Ändern oder Entfernen von Elementen aus dem Satz von Attributen, der über einen TypeDescriptor verfügbar gemacht wird.

(Geerbt von ComponentDesigner)
PostFilterEvents(IDictionary)

Ermöglicht einem Designer das Ändern oder Entfernen von Elementen aus dem Satz von Ereignissen, der über einen TypeDescriptor verfügbar gemacht wird.

(Geerbt von ComponentDesigner)
PostFilterProperties(IDictionary)

Ermöglicht einem Designer das Ändern oder Entfernen von Elementen aus dem Satz von Eigenschaften, der über einen TypeDescriptor verfügbar gemacht wird.

(Geerbt von ComponentDesigner)
PreFilterAttributes(IDictionary)

Ermöglicht einem Designer das Hinzufügen zu dem Satz von Attributen, der über einen TypeDescriptor verfügbar gemacht wird.

(Geerbt von ComponentDesigner)
PreFilterEvents(IDictionary)

Ermöglicht einem Designer ein Hinzufügen zu dem Satz von Ereignissen, der durch einen TypeDescriptor verfügbar gemacht wird.

(Geerbt von ComponentDesigner)
PreFilterProperties(IDictionary)

Passt die Gruppe von Eigenschaften an, die die Komponente mithilfe eines TypeDescriptor verfügbar macht.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Benachrichtigt IComponentChangeService darüber, dass diese Komponente geändert wurde.

(Geerbt von ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

Benachrichtigt IComponentChangeService darüber, dass diese Komponente gerade geändert wird.

(Geerbt von ComponentDesigner)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
UnhookChildControls(Control)

Leitet Meldungen für die untergeordneten Elemente des angegebenen Steuerelements an jedes Steuerelement und nicht an einen übergeordneten Designer weiter.

WndProc(Message)

Verarbeitet Windows-Meldungen und leitet diese optional an das Steuerelement weiter.

Explizite Schnittstellenimplementierungen

IDesignerFilter.PostFilterAttributes(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PostFilterAttributes(IDictionary)-Methode.

(Geerbt von ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PostFilterEvents(IDictionary)-Methode.

(Geerbt von ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PostFilterProperties(IDictionary)-Methode.

(Geerbt von ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PreFilterAttributes(IDictionary)-Methode.

(Geerbt von ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PreFilterEvents(IDictionary)-Methode.

(Geerbt von ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PreFilterProperties(IDictionary)-Methode.

(Geerbt von ComponentDesigner)
ITreeDesigner.Children

Eine Beschreibung dieses Members finden Sie unter der Children-Eigenschaft.

(Geerbt von ComponentDesigner)
ITreeDesigner.Parent

Eine Beschreibung dieses Members finden Sie unter der Parent-Eigenschaft.

(Geerbt von ComponentDesigner)

Gilt für

Siehe auch