Freigeben über


ControlDesigner Klasse

Definition

Erweitert das Entwurfsmodusverhalten einer 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, das Zeichnen auf einem Steuerelement aus Designercode und die Verwendung eines Teils der IDesignerFilter Schnittstelle zum Hinzufügen einer Eigenschaft für das Steuerelement zur Entwurfszeit. 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 einer Klassenbibliothek, fügen Sie einem Windows Forms Projekt einen Verweis auf die Bibliothek 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 Kontur des Umfangs des Steuerelements hervorgehoben, und die Farbe, mit der die Kontur gezeichnet wird, entspricht der OutlineColor 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 einen Designer einem Typ mithilfe eines DesignerAttributeTyps zuordnen.

Konstruktoren

Name Beschreibung
ControlDesigner()

Initialisiert eine neue Instanz der ControlDesigner-Klasse.

Felder

Name Beschreibung
accessibilityObj

Gibt das Barrierefreiheitsobjekt für den Designer an.

InvalidPoint

Definiert ein lokales Point , das die Werte eines ungültigen PointDarstellt.

Eigenschaften

Name Beschreibung
AccessibilityObject

Ruft das AccessibleObject dem Steuerelement zugewiesene Ab.

ActionLists

Ruft die Entwurfszeitaktionslisten ab, die von der Komponente unterstützt werden, die dem Designer zugeordnet ist.

(Geerbt von ComponentDesigner)
AssociatedComponents

Ruft die Auflistung der Komponenten ab, die der vom Designer verwalteten Komponente zugeordnet sind.

AutoResizeHandles

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Zuordnung des Ziehpunkts von der AutoSize Eigenschaft abhängig ist.

BehaviorService

Ruft die BehaviorService aus der Entwurfsumgebung ab.

Component

Ruft die Komponente ab, die dieser Designer entwerfen soll.

(Geerbt von ComponentDesigner)
Control

Ruft das Steuerelement ab, das der Designer entwerfen soll.

EnableDragRect

Ruft einen Wert ab, der angibt, ob Ziehrechtecke für diese Designerkomponente gezeichnet werden können.

InheritanceAttribute

Ruft den InheritanceAttribute 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 wird.

(Geerbt von ComponentDesigner)
ParentComponent

Ruft die übergeordnete Komponente für die ControlDesigner.

ParticipatesWithSnapLines

Ruft einen Wert ab, der angibt, ob die ControlDesigner Andocklinienausrichtung während eines Ziehvorgangs zulässig ist.

SelectionRules

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

SetTextualDefaultProperty

Erweitert das Entwurfsmodusverhalten einer Control.

(Geerbt von ComponentDesigner)
ShadowProperties

Ruft eine Auflistung von Eigenschaftswerten ab, die Benutzereinstellungen außer Kraft setzen.

(Geerbt von ComponentDesigner)
SnapLines

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

Verbs

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

(Geerbt von ComponentDesigner)

Methoden

Name Beschreibung
BaseWndProc(Message)

Verarbeitet Windows Nachrichten.

CanBeParentedTo(IDesigner)

Gibt an, ob das Steuerelement dieses Designers vom Steuerelement des angegebenen Designers übergeordnet werden kann.

DefWndProc(Message)

Stellt die Standardverarbeitung für Windows Nachrichten bereit.

DisplayError(Exception)

Zeigt Informationen zur angegebenen Ausnahme für den Benutzer an.

Dispose()

Veröffentlicht alle ressourcen, die von der ComponentDesigner.

(Geerbt von ComponentDesigner)
Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den ControlDesigner verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

DoDefaultAction()

Erstellt eine Methodensignatur in der Quellcodedatei für das Standardereignis in der Komponente und navigiert den Cursor des Benutzers zu diesem Speicherort.

(Geerbt von ComponentDesigner)
EnableDesignMode(Control, String)

Aktiviert Entwurfszeitfunktionen für ein untergeordnetes Steuerelement.

EnableDragDrop(Boolean)

Aktiviert oder deaktiviert die Drag-and-Drop-Unterstützung für das zu entwerfende Steuerelement.

Equals(Object)

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

(Geerbt von Object)
GetControlGlyph(GlyphSelectionType)

Gibt eine ControlBodyGlyph Darstellung der Grenzen dieses Steuerelements zurück.

GetGlyphs(GlyphSelectionType)

Ruft eine Auflistung von Glyph Objekten ab, die die Auswahlrahmen und Ziehpunkte für ein Standardsteuerelement darstellen.

GetHashCode()

Dient als die Standard-Hashfunktion

(Geerbt von Object)
GetHitTest(Point)

Gibt an, ob ein Mausklick an dem angegebenen Punkt vom Steuerelement behandelt werden soll.

GetService(Type)

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

(Geerbt von ComponentDesigner)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
HookChildControls(Control)

Leitet Nachrichten 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 neu.

InitializeNewComponent(IDictionary)

Initialisiert eine neu erstellte Komponente.

InitializeNonDefault()

Initialisiert die Eigenschaften des Steuerelements auf alle Nicht-Standardwerte.

InitializeNonDefault()
Veraltet.
Veraltet.

Initialisiert die Einstellungen für eine importierte Komponente, die bereits in anderen Einstellungen als den Standardwerten initialisiert ist.

(Geerbt von ComponentDesigner)
InternalControlDesigner(Int32)

Gibt den internen Steuerelement-Designer mit dem angegebenen Index in der ControlDesigner.

InvokeGetInheritanceAttribute(ComponentDesigner)

Ruft den InheritanceAttribute angegebenen ComponentDesignerab.

(Geerbt von ComponentDesigner)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
NumberOfInternalControlDesigners()

Gibt die Anzahl der internen Steuerelement-Designer in der ControlDesigner.

OnContextMenu(Int32, Int32)

Zeigt das Kontextmenü an und bietet die Möglichkeit, zusätzliche Verarbeitung durchzuführen, wenn das Kontextmenü angezeigt werden soll.

OnCreateHandle()

Bietet die Möglichkeit, unmittelbar nach der Erstellung des Steuerpunkts weitere Verarbeitungen durchzuführen.

OnDragComplete(DragEventArgs)

Empfängt einen Aufruf zum Bereinigen eines Drag-and-Drop-Vorgangs.

OnDragDrop(DragEventArgs)

Empfängt einen Aufruf, wenn ein Drag-and-Drop-Objekt in der Steuerelement-Designeransicht abgelegt wird.

OnDragEnter(DragEventArgs)

Empfängt einen Aufruf, wenn ein Drag-and-Drop-Vorgang in die Steuerelement-Designeransicht wechselt.

OnDragLeave(EventArgs)

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

OnDragOver(DragEventArgs)

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

OnGiveFeedback(GiveFeedbackEventArgs)

Empfängt einen Aufruf, wenn ein Drag-and-Drop-Vorgang ausgeführt wird, um visuelle Hinweise basierend auf der Position der Maus bereitzustellen, während ein Ziehvorgang ausgeführt wird.

OnMouseDragBegin(Int32, Int32)

Empfängt einen Anruf als Reaktion auf die linke Maustaste, die während der Komponente gedrückt und gehalten wird.

OnMouseDragEnd(Boolean)

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

OnMouseDragMove(Int32, Int32)

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

OnMouseEnter()

Empfängt einen Anruf, wenn die Maus das Steuerelement zum ersten Mal eingibt.

OnMouseHover()

Empfängt einen Anruf, nachdem die Maus über das Steuerelement bewegt wurde.

OnMouseLeave()

Empfängt einen Anruf, wenn die Maus das Steuerelement zum ersten Mal eingibt.

OnPaintAdornments(PaintEventArgs)

Empfängt einen Aufruf, wenn das Steuerelement, das der Designer verwaltet, seine Oberfläche gezeichnet hat, damit der Designer alle zusätzlichen Schmücken über dem Steuerelement zeichnen kann.

OnSetComponentDefaults()
Veraltet.
Veraltet.

Wird aufgerufen, wenn der Designer initialisiert wird.

OnSetCursor()

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

PostFilterAttributes(IDictionary)

Ermöglicht es einem Designer, Elemente aus der Gruppe von Attributen zu ändern oder zu entfernen, die er über eine TypeDescriptor.

(Geerbt von ComponentDesigner)
PostFilterEvents(IDictionary)

Ermöglicht einem Designer das Ändern oder Entfernen von Elementen aus der Gruppe von Ereignissen, die er über eine TypeDescriptor.

(Geerbt von ComponentDesigner)
PostFilterProperties(IDictionary)

Ermöglicht es einem Designer, Elemente aus dem Satz von Eigenschaften zu ändern oder zu entfernen, die er über eine TypeDescriptor.

(Geerbt von ComponentDesigner)
PreFilterAttributes(IDictionary)

Ermöglicht es einem Designer, den Satz von Attributen hinzuzufügen, die er über eine TypeDescriptor.

(Geerbt von ComponentDesigner)
PreFilterEvents(IDictionary)

Ermöglicht es einem Designer, den Satz von Ereignissen hinzuzufügen, die er über eine TypeDescriptor.

(Geerbt von ComponentDesigner)
PreFilterProperties(IDictionary)

Passt den Satz von Eigenschaften an, den die Komponente über eine TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Benachrichtigt die IComponentChangeService Änderung dieser Komponente.

(Geerbt von ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

Benachrichtigt die IComponentChangeService Komponente darüber, dass diese Komponente geändert werden soll.

(Geerbt von ComponentDesigner)
ToString()

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

(Geerbt von Object)
UnhookChildControls(Control)

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

WndProc(Message)

Verarbeitet Windows Nachrichten und leitet sie optional an das Steuerelement weiter.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IDesignerFilter.PostFilterAttributes(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PostFilterAttributes(IDictionary) Methode.

(Geerbt von ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PostFilterEvents(IDictionary) Methode.

(Geerbt von ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PostFilterProperties(IDictionary) Methode.

(Geerbt von ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PreFilterAttributes(IDictionary) Methode.

(Geerbt von ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PreFilterEvents(IDictionary) Methode.

(Geerbt von ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PreFilterProperties(IDictionary) Methode.

(Geerbt von ComponentDesigner)
ITreeDesigner.Children

Eine Beschreibung dieses Elements finden Sie in der Children Eigenschaft.

(Geerbt von ComponentDesigner)
ITreeDesigner.Parent

Eine Beschreibung dieses Elements finden Sie in der Parent Eigenschaft.

(Geerbt von ComponentDesigner)

Gilt für:

Weitere Informationen