ControlDesigner Třída

Definice

Rozšiřuje chování režimu návrhu objektu 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
Dědičnost
ControlDesigner
Odvozené

Příklady

Následující příklad ControlDesigner implementace ukazuje zpracování MouseEnter a MouseLeave události, kreslení na ovládací prvek z kódu návrháře a použití části IDesignerFilter rozhraní k přidání vlastnosti ovládacího prvku v době návrhu. Následující ukázkový kód obsahuje návrháře a ukázkový uživatelský ovládací prvek přidružený k návrháři. Pokud chcete tuto ukázku sestavit, zkompilujte ukázku do knihovny tříd, přidejte odkaz na knihovnu do model Windows Forms projektu, přidejte ovládací prvek do sady nástrojů a přidejte do formuláře instanci ovládacího prvku. Když přejdete na ovládací prvek, zvýrazní se vnitřní obrys obvodu ovládacího prvku a barva použitá k nakreslení obrysu odpovídá OutlineColor vlastnosti, kterou návrhář přidal do vlastností uvedených pro ovládací prvek.

Přidejte odkaz na sestavení System.Design ke kompilaci příkladu kódu.

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

Poznámky

ControlDesigner poskytuje základní třídu pro návrháře komponent odvozených z Control. Kromě metod a funkcí zděděných z ComponentDesigner třídy poskytuje další metody, ControlDesigner které podporují rozšíření a změnu chování přidruženého Control v době návrhu.

Návrháře můžete přidružit k typu pomocí DesignerAttribute. Přehled přizpůsobení chování času návrhu najdete v tématu Rozšíření podpory Design-Time.

Konstruktory

ControlDesigner()

Inicializuje novou instanci ControlDesigner třídy.

Pole

accessibilityObj

Určuje objekt přístupnosti pro návrháře.

InvalidPoint

Definuje místní Point , který představuje hodnoty neplatné Point.

Vlastnosti

AccessibilityObject

Získá přiřazený AccessibleObject ovládací prvek.

ActionLists

Získá seznamy akcí v době návrhu podporované komponentou přidruženou k návrháři.

(Zděděno od ComponentDesigner)
AssociatedComponents

Získá kolekci komponent přidružených k komponentě spravované návrhářem.

AutoResizeHandles

Získá nebo nastaví hodnotu určující, zda velikost úchytu přidělení závisí na hodnotě AutoSize vlastnosti.

BehaviorService

BehaviorService Získá z návrhového prostředí.

Component

Získá komponentu, která návrhář navrhuje.

(Zděděno od ComponentDesigner)
Control

Získá ovládací prvek, který návrhář navrhuje.

EnableDragRect

Získá hodnotu určující, zda lze přetažení obdélníků nakreslit na této komponentě návrháře.

InheritanceAttribute

InheritanceAttribute Získá návrháře.

InheritanceAttribute

Získá atribut, který označuje typ dědičnosti přidružené komponenty.

(Zděděno od ComponentDesigner)
Inherited

Získá hodnotu určující, zda je tato komponenta zděděna.

(Zděděno od ComponentDesigner)
ParentComponent

Získá nadřazenou komponentu ControlDesignerpro .

ParentComponent

Získá nadřazenou komponentu pro tohoto návrháře.

(Zděděno od ComponentDesigner)
ParticipatesWithSnapLines

Získá hodnotu označující, zda ControlDesigner bude povoleno zarovnání čáry při přetažení.

SelectionRules

Získá pravidla výběru, která označují možnosti pohybu komponenty.

ShadowProperties

Získá kolekci hodnot vlastností, které přepíší uživatelská nastavení.

(Zděděno od ComponentDesigner)
SnapLines

Získá seznam SnapLine objektů představujících významné body zarovnání pro tento ovládací prvek.

Verbs

Získá příkazy návrhu podporované komponentou, která je přidružená k návrháři.

(Zděděno od ComponentDesigner)

Metody

BaseWndProc(Message)

Zpracovává zprávy systému Windows.

CanBeParentedTo(IDesigner)

Označuje, jestli lze ovládací prvek tohoto návrháře nadřazený ovládacím prvek zadaného návrháře.

DefWndProc(Message)

Poskytuje výchozí zpracování Windows zpráv.

DisplayError(Exception)

Zobrazí informace o zadané výjimce uživatele.

Dispose()

Uvolní všechny prostředky používané nástrojem ComponentDesigner.

(Zděděno od ComponentDesigner)
Dispose(Boolean)

Uvolní nespravované prostředky používané ControlDesigner a volitelně uvolní spravované prostředky.

DoDefaultAction()

Vytvoří podpis metody v souboru zdrojového kódu pro výchozí událost komponenty a přejde kurzor uživatele na toto umístění.

(Zděděno od ComponentDesigner)
EnableDesignMode(Control, String)

Umožňuje funkci času návrhu podřízeného ovládacího prvku.

EnableDragDrop(Boolean)

Povolí nebo zakáže podporu přetažení pro navržený ovládací prvek.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetControlGlyph(GlyphSelectionType)

Vrátí reprezentaci ControlBodyGlyph hranic tohoto ovládacího prvku.

GetGlyphs(GlyphSelectionType)

Získá kolekci Glyph objektů představujících ohraničení výběru a úchyty pro standardní ovládací prvek.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetHitTest(Point)

Určuje, zda má ovládací prvek zpracovat kliknutí myší na zadaný bod.

GetService(Type)

Pokusí se načíst zadaný typ služby z webu režimu návrhu komponenty návrháře.

(Zděděno od ComponentDesigner)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
HookChildControls(Control)

Směruje zprávy z podřízených ovládacích prvků zadaného ovládacího prvku do návrháře.

Initialize(IComponent)

Inicializuje návrháře se zadanou komponentou.

InitializeExistingComponent(IDictionary)

Znovu inicializuje existující komponentu.

InitializeExistingComponent(IDictionary)

Znovu inicializuje existující komponentu.

(Zděděno od ComponentDesigner)
InitializeNewComponent(IDictionary)

Inicializuje nově vytvořenou komponentu.

InitializeNewComponent(IDictionary)

Inicializuje nově vytvořenou komponentu.

(Zděděno od ComponentDesigner)
InitializeNonDefault()

Inicializuje vlastnosti ovládacího prvku na všechny ne výchozí hodnoty.

InitializeNonDefault()
Zastaralé.
Zastaralé.

Inicializuje nastavení pro importovanou komponentu, která je již inicializována na jiné nastavení než výchozí hodnoty.

(Zděděno od ComponentDesigner)
InternalControlDesigner(Int32)

Vrátí návrhář interního ovládacího prvku se zadaným indexem v souboru ControlDesigner.

InvokeGetInheritanceAttribute(ComponentDesigner)

InheritanceAttribute Získá zadaný ComponentDesigner.

(Zděděno od ComponentDesigner)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
NumberOfInternalControlDesigners()

Vrátí počet návrhářů interních ovládacích prvků v sadě ControlDesigner.

OnContextMenu(Int32, Int32)

Zobrazuje místní nabídku a poskytuje příležitost provést další zpracování, když se má zobrazit místní nabídka.

OnCreateHandle()

Poskytuje příležitost provést další zpracování ihned po vytvoření řídicího úchytu.

OnDragComplete(DragEventArgs)

Přijme volání, které vyčistí operaci přetažením.

OnDragDrop(DragEventArgs)

Přijme volání při přetažení objektu do zobrazení návrháře ovládacích prvků.

OnDragEnter(DragEventArgs)

Přijme volání, když operace přetažení přejde do zobrazení návrháře ovládacích prvků.

OnDragLeave(EventArgs)

Přijme volání, když operace přetažení opustí zobrazení návrháře ovládacích prvků.

OnDragOver(DragEventArgs)

Přijme volání, když je objekt přetahovaný přetažením přes zobrazení návrháře ovládacích prvků.

OnGiveFeedback(GiveFeedbackEventArgs)

Přijme volání, když probíhá operace přetažení, která poskytuje vizuální upozornění na základě umístění myši, zatímco probíhá operace přetažení.

OnMouseDragBegin(Int32, Int32)

Přijme hovor v reakci na levé tlačítko myši, které se stiskne a drží při procházení komponenty.

OnMouseDragEnd(Boolean)

Přijme volání na konci operace přetažení, která operaci dokončí nebo zruší.

OnMouseDragMove(Int32, Int32)

Přijímá volání pro každý pohyb myši během operace přetažení.

OnMouseEnter()

Přijme hovor, když myš poprvé vstoupí do ovládacího prvku.

OnMouseHover()

Přijme hovor po najetí myší na ovládací prvek.

OnMouseLeave()

Přijme hovor, když myš poprvé vstoupí do ovládacího prvku.

OnPaintAdornments(PaintEventArgs)

Obdrží hovor, když ovládací prvek, který návrhář spravuje, namaloval jeho povrch, aby návrhář mohl nakreslit jakékoli další doplňky na ovládací prvek.

OnSetComponentDefaults()
Zastaralé.
Zastaralé.

Volá se při inicializaci návrháře.

OnSetCursor()

Přijme hovor pokaždé, když je potřeba nastavit kurzor.

PostFilterAttributes(IDictionary)

Umožňuje návrháři změnit nebo odebrat položky ze sady atributů, které zveřejňuje prostřednictvím TypeDescriptor.

(Zděděno od ComponentDesigner)
PostFilterEvents(IDictionary)

Umožňuje návrháři změnit nebo odebrat položky ze sady událostí, které zveřejňuje prostřednictvím TypeDescriptor.

(Zděděno od ComponentDesigner)
PostFilterProperties(IDictionary)

Umožňuje návrháři změnit nebo odebrat položky ze sady vlastností, které zveřejňuje prostřednictvím TypeDescriptor.

(Zděděno od ComponentDesigner)
PreFilterAttributes(IDictionary)

Umožňuje návrháři přidat do sady atributů, které zveřejňuje prostřednictvím TypeDescriptor.

(Zděděno od ComponentDesigner)
PreFilterEvents(IDictionary)

Umožňuje návrháři přidat do sady událostí, které zveřejňuje prostřednictvím TypeDescriptor.

(Zděděno od ComponentDesigner)
PreFilterProperties(IDictionary)

Upraví sadu vlastností, které komponenta zveřejňuje prostřednictvím TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Upozorní, IComponentChangeService že se tato komponenta změnila.

(Zděděno od ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

Upozorní IComponentChangeService , že se tato komponenta chystá změnit.

(Zděděno od ComponentDesigner)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
UnhookChildControls(Control)

Směruje zprávy pro podřízené položky zadaného ovládacího prvku namísto nadřazeného návrháře.

WndProc(Message)

Zpracovává Windows zprávy a volitelně je směruje do ovládacího prvku.

Explicitní implementace rozhraní

IDesignerFilter.PostFilterAttributes(IDictionary)

Popis tohoto člena najdete v PostFilterAttributes(IDictionary) metodě.

(Zděděno od ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

Popis tohoto člena najdete v PostFilterEvents(IDictionary) metodě.

(Zděděno od ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

Popis tohoto člena najdete v PostFilterProperties(IDictionary) metodě.

(Zděděno od ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

Popis tohoto člena najdete v PreFilterAttributes(IDictionary) metodě.

(Zděděno od ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

Popis tohoto člena najdete v PreFilterEvents(IDictionary) metodě.

(Zděděno od ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

Popis tohoto člena najdete v PreFilterProperties(IDictionary) metodě.

(Zděděno od ComponentDesigner)
ITreeDesigner.Children

Popis tohoto člena najdete v Children vlastnosti.

(Zděděno od ComponentDesigner)
ITreeDesigner.Parent

Popis tohoto člena najdete v Parent vlastnosti.

(Zděděno od ComponentDesigner)

Platí pro

Viz také