ControlDesigner Klasa

Definicja

Rozszerza zachowanie trybu projektowania elementu 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
Dziedziczenie
ControlDesigner
Pochodne

Przykłady

Poniższa przykładowa ControlDesigner implementacja demonstruje obsługę i MouseEnter MouseLeave zdarzenia, rysowanie na kontrolce z poziomu kodu projektanta oraz używanie części interfejsu IDesignerFilter w celu dodania właściwości kontrolki w czasie projektowania. Poniższy przykładowy kod zawiera projektanta i przykładową kontrolkę użytkownika skojarzona z projektantem. Aby skompilować ten przykład, skompiluj przykład do biblioteki klas, dodaj odwołanie do biblioteki do projektu Windows Forms, dodaj kontrolkę do przybornika i dodaj wystąpienie kontrolki do formularza. Gdy wskazujesz kontrolkę, wewnętrzny kontur obwodu kontrolki jest wyróżniony, a kolor używany do rysowania konturu odpowiada OutlineColor właściwości, którą projektant dodał do właściwości wymienionych dla kontrolki.

Dodaj odwołanie do zestawu System.Design w celu skompilowania przykładu kodu.

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

Uwagi

ControlDesigner Udostępnia klasę bazową dla projektantów składników, które pochodzą z klasy Control. Oprócz metod i funkcji dziedziczonych po ComponentDesigner klasie, ControlDesigner udostępnia dodatkowe metody obsługi rozszerzania i modyfikowania zachowania skojarzonego Control w czasie projektowania.

Projektanta można skojarzyć z typem przy użyciu elementu DesignerAttribute. Aby zapoznać się z omówieniem dostosowywania zachowania czasu projektowania, zobacz Rozszerzanie obsługi Design-Time.

Konstruktory

ControlDesigner()

Inicjuje nowe wystąpienie klasy ControlDesigner.

Pola

accessibilityObj

Określa obiekt ułatwień dostępu dla projektanta.

InvalidPoint

Definiuje lokalizację lokalną Point reprezentującą wartości nieprawidłowego Pointelementu .

Właściwości

AccessibilityObject

AccessibleObject Pobiera element przypisany do kontrolki.

ActionLists

Pobiera listę akcji czasu projektowania obsługiwaną przez składnik skojarzony z projektantem.

(Odziedziczone po ComponentDesigner)
AssociatedComponents

Pobiera kolekcję składników skojarzonych ze składnikiem zarządzanym przez projektanta.

AutoResizeHandles

Pobiera lub ustawia wartość wskazującą, czy alokacja uchwytu zmiany rozmiaru AutoSize zależy od wartości właściwości.

BehaviorService

Pobiera element BehaviorService ze środowiska projektowego.

Component

Pobiera składnik, który projektuje ten projektant.

(Odziedziczone po ComponentDesigner)
Control

Pobiera kontrolę, którą projektuje projektant.

EnableDragRect

Pobiera wartość wskazującą, czy przeciąganie prostokątów można narysować na tym składniku projektanta.

InheritanceAttribute

Pobiera element InheritanceAttribute projektanta.

InheritanceAttribute

Pobiera atrybut wskazujący typ dziedziczenia skojarzonego składnika.

(Odziedziczone po ComponentDesigner)
Inherited

Pobiera wartość wskazującą, czy ten składnik jest dziedziczony.

(Odziedziczone po ComponentDesigner)
ParentComponent

Pobiera składnik nadrzędny dla elementu ControlDesigner.

ParentComponent

Pobiera składnik nadrzędny dla tego projektanta.

(Odziedziczone po ComponentDesigner)
ParticipatesWithSnapLines

Pobiera wartość wskazującą, czy ControlDesigner ustawienie umożliwia wyrównanie linii przyciągania podczas operacji przeciągania.

SelectionRules

Pobiera reguły wyboru, które wskazują możliwości przenoszenia składnika.

ShadowProperties

Pobiera kolekcję wartości właściwości, które zastępują ustawienia użytkownika.

(Odziedziczone po ComponentDesigner)
SnapLines

Pobiera listę SnapLine obiektów reprezentujących znaczące punkty wyrównania dla tej kontrolki.

Verbs

Pobiera czas projektowania czasowniki obsługiwane przez składnik skojarzony z projektantem.

(Odziedziczone po ComponentDesigner)

Metody

BaseWndProc(Message)

Przetwarza wiadomości systemu Windows.

CanBeParentedTo(IDesigner)

Wskazuje, czy kontrolka tego projektanta może być nadrzędna przez kontrolkę określonego projektanta.

DefWndProc(Message)

Zapewnia domyślne przetwarzanie komunikatów Windows.

DisplayError(Exception)

Wyświetla informacje o określonym wyjątku dla użytkownika.

Dispose()

Zwalnia wszelkie zasoby używane przez element ComponentDesigner.

(Odziedziczone po ComponentDesigner)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element ControlDesigner i opcjonalnie zwalnia zasoby zarządzane.

DoDefaultAction()

Tworzy podpis metody w pliku kodu źródłowego dla zdarzenia domyślnego w składniku i przechodzi kursor użytkownika do tej lokalizacji.

(Odziedziczone po ComponentDesigner)
EnableDesignMode(Control, String)

Włącza funkcję czasu projektowania dla kontrolki podrzędnej.

EnableDragDrop(Boolean)

Włącza lub wyłącza obsługę przeciągania i upuszczania dla projektowanych kontrolek.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetControlGlyph(GlyphSelectionType)

Zwraca wartość reprezentującą ControlBodyGlyph granice tej kontrolki.

GetGlyphs(GlyphSelectionType)

Pobiera kolekcję Glyph obiektów reprezentujących obramowania zaznaczenia i chwyta uchwyty dla standardowej kontrolki.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetHitTest(Point)

Wskazuje, czy kliknięcie myszy w określonym punkcie powinno być obsługiwane przez kontrolkę.

GetService(Type)

Próbuje pobrać określony typ usługi z witryny trybu projektowania składnika projektanta.

(Odziedziczone po ComponentDesigner)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
HookChildControls(Control)

Kieruje komunikaty z kontrolek podrzędnych określonej kontrolki do projektanta.

Initialize(IComponent)

Inicjuje projektanta za pomocą określonego składnika.

InitializeExistingComponent(IDictionary)

Ponownie inicjuje istniejący składnik.

InitializeExistingComponent(IDictionary)

Ponownie inicjuje istniejący składnik.

(Odziedziczone po ComponentDesigner)
InitializeNewComponent(IDictionary)

Inicjuje nowo utworzony składnik.

InitializeNewComponent(IDictionary)

Inicjuje nowo utworzony składnik.

(Odziedziczone po ComponentDesigner)
InitializeNonDefault()

Inicjuje właściwości kontrolki do wszystkich wartości innych niż domyślne.

InitializeNonDefault()
Nieaktualne.
Nieaktualne.

Inicjuje ustawienia zaimportowanego składnika, który jest już inicjowany do ustawień innych niż domyślne.

(Odziedziczone po ComponentDesigner)
InternalControlDesigner(Int32)

Zwraca wewnętrzny projektant kontrolek z określonym indeksem w obiekcie ControlDesigner.

InvokeGetInheritanceAttribute(ComponentDesigner)

Pobiera element InheritanceAttribute określonego ComponentDesignerelementu .

(Odziedziczone po ComponentDesigner)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
NumberOfInternalControlDesigners()

Zwraca liczbę wewnętrznych projektantów kontroli w elemecie ControlDesigner.

OnContextMenu(Int32, Int32)

Pokazuje menu kontekstowe i zapewnia możliwość wykonania dodatkowego przetwarzania, gdy menu kontekstowe ma być wyświetlane.

OnCreateHandle()

Zapewnia możliwość wykonania dodatkowego przetwarzania bezpośrednio po utworzeniu uchwytu sterującego.

OnDragComplete(DragEventArgs)

Odbiera wywołanie czyszczenia operacji przeciągania i upuszczania.

OnDragDrop(DragEventArgs)

Odbiera wywołanie, gdy obiekt przeciągania i upuszczania jest upuszczany w widoku projektanta sterowania.

OnDragEnter(DragEventArgs)

Odbiera wywołanie, gdy operacja przeciągania i upuszczania wchodzi w widok projektanta sterowania.

OnDragLeave(EventArgs)

Odbiera wywołanie, gdy operacja przeciągania i upuszczania opuszcza widok projektanta sterowania.

OnDragOver(DragEventArgs)

Odbiera wywołanie, gdy obiekt przeciągania i upuszczania jest przeciągany nad widokiem projektanta kontrolki.

OnGiveFeedback(GiveFeedbackEventArgs)

Odbiera wywołanie, gdy operacja przeciągania i upuszczania jest w toku w celu zapewnienia wskazówek wizualnych na podstawie lokalizacji myszy, gdy operacja przeciągania jest w toku.

OnMouseDragBegin(Int32, Int32)

Odbiera wywołanie w odpowiedzi na naciśnięcie lewego przycisku myszy i zatrzymanie go przez składnik.

OnMouseDragEnd(Boolean)

Odbiera wywołanie na końcu operacji przeciągania i upuszczania, aby zakończyć lub anulować operację.

OnMouseDragMove(Int32, Int32)

Odbiera wywołanie dla każdego ruchu myszy podczas operacji przeciągania i upuszczania.

OnMouseEnter()

Odbiera wywołanie po pierwszym wejściu myszy do kontrolki.

OnMouseHover()

Odbiera wywołanie po umieszczeniu kursora myszy nad kontrolką.

OnMouseLeave()

Odbiera wywołanie po pierwszym wejściu myszy do kontrolki.

OnPaintAdornments(PaintEventArgs)

Otrzymuje wywołanie, gdy kontrolka zarządzana przez projektanta namalowała swoją powierzchnię, aby projektant mógł malować wszelkie dodatkowe ozdoby na wierzchu kontrolki.

OnSetComponentDefaults()
Nieaktualne.
Nieaktualne.

Wywoływane po zainicjowaniu projektanta.

OnSetCursor()

Odbiera wywołanie za każdym razem, gdy kursor musi być ustawiony.

PostFilterAttributes(IDictionary)

Umożliwia projektantowi zmianę lub usunięcie elementów z zestawu atrybutów, które uwidacznia za pośrednictwem elementu TypeDescriptor.

(Odziedziczone po ComponentDesigner)
PostFilterEvents(IDictionary)

Umożliwia projektantowi zmianę lub usunięcie elementów z zestawu zdarzeń udostępnianych za pośrednictwem elementu TypeDescriptor.

(Odziedziczone po ComponentDesigner)
PostFilterProperties(IDictionary)

Umożliwia projektantowi zmianę lub usunięcie elementów z zestawu właściwości, które uwidacznia za pośrednictwem elementu TypeDescriptor.

(Odziedziczone po ComponentDesigner)
PreFilterAttributes(IDictionary)

Umożliwia projektantowi dodanie do zestawu atrybutów, które uwidacznia za pośrednictwem elementu TypeDescriptor.

(Odziedziczone po ComponentDesigner)
PreFilterEvents(IDictionary)

Umożliwia projektantowi dodanie do zestawu zdarzeń, które uwidacznia za pośrednictwem elementu TypeDescriptor.

(Odziedziczone po ComponentDesigner)
PreFilterProperties(IDictionary)

Dostosowuje zestaw właściwości, które składnik uwidacznia za pomocą elementu TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Powiadamia o IComponentChangeService zmianie tego składnika.

(Odziedziczone po ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

Powiadamia o tym IComponentChangeService , że ten składnik ma zostać zmieniony.

(Odziedziczone po ComponentDesigner)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
UnhookChildControls(Control)

Kieruje komunikaty dla elementów podrzędnych określonej kontrolki do każdej kontrolki, a nie do projektanta nadrzędnego.

WndProc(Message)

Przetwarza Windows komunikaty i opcjonalnie kieruje je do kontrolki.

Jawne implementacje interfejsu

IDesignerFilter.PostFilterAttributes(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PostFilterAttributes(IDictionary) .

(Odziedziczone po ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PostFilterEvents(IDictionary) .

(Odziedziczone po ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PostFilterProperties(IDictionary) .

(Odziedziczone po ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PreFilterAttributes(IDictionary) .

(Odziedziczone po ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PreFilterEvents(IDictionary) .

(Odziedziczone po ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PreFilterProperties(IDictionary) .

(Odziedziczone po ComponentDesigner)
ITreeDesigner.Children

Aby uzyskać opis tego elementu członkowskiego, zobacz Children właściwość .

(Odziedziczone po ComponentDesigner)
ITreeDesigner.Parent

Aby uzyskać opis tego elementu członkowskiego, zobacz Parent właściwość .

(Odziedziczone po ComponentDesigner)

Dotyczy

Zobacz też