Sdílet prostřednictvím


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í vzorový kód obsahuje návrháře a ukázkový uživatelský ovládací prvek přidružený k návrháři. Chcete-li vytvořit tuto ukázku, zkompilujte ukázku do knihovny tříd, přidejte odkaz na knihovnu na projekt Modelu Windows Forms, přidejte ovládací prvek do sady nástrojů a přidejte instanci ovládacího prvku do formuláře. Když přejdete na ovládací prvek, vnitřní obrys obvodu ovládacího prvku je zvýrazněn a barva použitá k vykreslení 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 pro 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, které jsou odvozeny z Control. Kromě metod a funkcí zděděných z ComponentDesigner třídy poskytuje ControlDesigner další metody pro podporu rozšíření a změny 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í při návrhu najdete v tématu Rozšíření podpory Design-Time.

Konstruktory

ControlDesigner()

Inicializuje novou instanci ControlDesigner třídy .

Pole

accessibilityObj

Určuje objekt usnadnění pro návrháře.

InvalidPoint

Definuje místní Point , která představuje hodnoty neplatného Pointobjektu .

Vlastnosti

AccessibilityObject

AccessibleObject Získá přiřazené ovládacímu prvku.

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 označující, zda přidělení úchytu pro změnu velikosti závisí na hodnotě AutoSize vlastnosti.

BehaviorService

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

Component

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

(Zděděno od ComponentDesigner)
Control

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

EnableDragRect

Získá hodnotu označující, zda lze přetáhnout obdélníky na tuto komponentu návrháře.

InheritanceAttribute

Získá z InheritanceAttribute 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 označující, zda je tato součást 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 umožní zarovnání čáry během operace přetažení.

SelectionRules

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

SetTextualDefaultProperty

Rozšiřuje chování režimu návrhu objektu Control.

(Zděděno od ComponentDesigner)
ShadowProperties

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

(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 v době návrhu podporované komponentou, která je přidružena k návrháři.

(Zděděno od ComponentDesigner)

Metody

BaseWndProc(Message)

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

CanBeParentedTo(IDesigner)

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

DefWndProc(Message)

Poskytuje výchozí zpracování zpráv systému Windows.

DisplayError(Exception)

Zobrazí informace o zadané výjimce pro 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é nástrojem ControlDesigner a volitelně uvolní spravované prostředky.

DoDefaultAction()

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

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

Umožňuje funkci doby návrhu pro podřízený ovládací prvek.

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í hodnotu ControlBodyGlyph představující hranice 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í hashovací funkce.

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

Určuje, zda má ovládací prvek zpracovat kliknutí myší v zadaném 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á z aktuální instance.

(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 hodnoty, které nejsou výchozí.

InitializeNonDefault()
Zastaralé.
Zastaralé.

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

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

Vrátí návrháře interních ovládacích prvků se zadaným indexem v objektu ControlDesigner.

InvokeGetInheritanceAttribute(ComponentDesigner)

Získá ze zadaného ComponentDesignerobjektu InheritanceAttribute .

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

Vytvoří mělkou kopii aktuálního Objectsouboru .

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

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

OnContextMenu(Int32, Int32)

Zobrazuje místní nabídku a poskytuje možnost provést další zpracování, když se má místní nabídka zobrazit.

OnCreateHandle()

Poskytuje možnost provést další zpracování ihned po vytvoření ovládacího úchytu.

OnDragComplete(DragEventArgs)

Obdrží volání k vyčištění operace přetažení.

OnDragDrop(DragEventArgs)

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

OnDragEnter(DragEventArgs)

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

OnDragLeave(EventArgs)

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

OnDragOver(DragEventArgs)

Přijme volání při přetažení objektu přes zobrazení návrháře ovládacího prvku.

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 volání v reakci na stisknutí a podržení levého tlačítka myši nad komponentou.

OnMouseDragEnd(Boolean)

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

OnMouseDragMove(Int32, Int32)

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

OnMouseEnter()

Přijme hovor při prvním vstupu myši do ovládacího prvku.

OnMouseHover()

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

OnMouseLeave()

Přijme hovor při prvním vstupu myši do ovládacího prvku.

OnPaintAdornments(PaintEventArgs)

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

OnSetComponentDefaults()
Zastaralé.
Zastaralé.

Volána 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 objektu 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 objektu TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

IComponentChangeService Oznámí, že tato komponenta byla změněna.

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

IComponentChangeService Oznámí, že se tato komponenta bude mě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 do každého ovládacího prvku, nikoli do nadřazeného návrháře.

WndProc(Message)

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

Explicitní implementace rozhraní

IDesignerFilter.PostFilterAttributes(IDictionary)

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

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

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

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

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

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

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

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

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

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

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

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

Popis tohoto členu najdete ve Children vlastnosti .

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

Popis tohoto členu najdete ve Parent vlastnosti .

(Zděděno od ComponentDesigner)

Platí pro

Viz také