Aracılığıyla paylaş


ControlDesigner Sınıf

Tanım

bir Controlöğesinin tasarım modu davranışını genişletir.

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
Devralma
ControlDesigner
Türetilmiş

Örnekler

Aşağıdaki örnek ControlDesigner uygulama, işleme MouseEnter ve MouseLeave olayları, tasarımcı kodundan bir denetime çizim oluşturmayı ve tasarım zamanında denetim için bir özellik eklemek üzere arabirimin bir kısmını IDesignerFilter kullanmayı gösterir. Aşağıdaki örnek kod, tasarımcıyla ilişkilendirilmiş bir tasarımcı ve örnek kullanıcı denetimi içerir. Bu örneği derlemek için örneği bir sınıf kitaplığında derleyin, Windows Forms projesine kitaplığa başvuru ekleyin, denetimi Araç Kutusu'na ekleyin ve formunuza denetimin bir örneğini ekleyin. Denetime işaret ettiğinizde, denetimin çevresinin iç ana hattı vurgulanır ve ana hattı çizmek için kullanılan renk, tasarımcının OutlineColor denetim için listelenen özelliklere eklediği özelliğe karşılık gelir.

Kod örneğini derlemek için System.Design derlemesine bir başvuru ekleyin.

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

Açıklamalar

ControlDesigner , öğesinden Controltüretilen bileşenlerin tasarımcıları için bir temel sınıf sağlar. sınıfından devralınan ComponentDesigner yöntemlere ve işlevlere ek olarak, ControlDesigner tasarım zamanında ilişkili Control bir öğesinin davranışını genişletmeyi ve değiştirmeyi desteklemek için ek yöntemler sağlar.

kullanarak DesignerAttributebir tasarımcıyı bir türle ilişkilendirebilirsiniz. Tasarım zamanı davranışını özelleştirmeye genel bakış için bkz. Design-Time Desteğini Genişletme.

Oluşturucular

ControlDesigner()

ControlDesigner sınıfının yeni bir örneğini başlatır.

Alanlar

accessibilityObj

Tasarımcının erişilebilirlik nesnesini belirtir.

InvalidPoint

Geçersiz Pointbir değerinin değerlerini temsil eden bir yerel Point öğesini tanımlar.

Özellikler

AccessibilityObject

Denetime AccessibleObject atananı alır.

ActionLists

Tasarımcıyla ilişkilendirilmiş bileşen tarafından desteklenen tasarım zamanı eylem listelerini alır.

(Devralındığı yer: ComponentDesigner)
AssociatedComponents

Tasarımcı tarafından yönetilen bileşenle ilişkili bileşen koleksiyonunu alır.

AutoResizeHandles

Yeniden boyutlandırma tutamacı ayırmasının özelliğin değerine bağlı olup olmadığını belirten bir değer AutoSize alır veya ayarlar.

BehaviorService

BehaviorService öğesini tasarım ortamından alır.

Component

Bu tasarımcının tasarlıyor olduğu bileşeni alır.

(Devralındığı yer: ComponentDesigner)
Control

Tasarımcının tasarlıyor olduğu denetimi alır.

EnableDragRect

Sürüklenen dikdörtgenlerin bu tasarımcı bileşenine çizilip çizilemeyeceğini gösteren bir değer alır.

InheritanceAttribute

Tasarımcının InheritanceAttribute öğesini alır.

InheritanceAttribute

İlişkili bileşenin devralma türünü gösteren bir öznitelik alır.

(Devralındığı yer: ComponentDesigner)
Inherited

Bu bileşenin devralınıp devralınmadığını belirten bir değer alır.

(Devralındığı yer: ComponentDesigner)
ParentComponent

için ControlDesignerüst bileşeni alır.

ParentComponent

Bu tasarımcının üst bileşenini alır.

(Devralındığı yer: ComponentDesigner)
ParticipatesWithSnapLines

öğesinin bir sürükleme işlemi sırasında ek çizgi hizalamasına ControlDesigner izin verip vermeyeceğini belirten bir değer alır.

SelectionRules

Bir bileşenin hareket özelliklerini gösteren seçim kurallarını alır.

SetTextualDefaultProperty

bir Controlöğesinin tasarım modu davranışını genişletir.

(Devralındığı yer: ComponentDesigner)
ShadowProperties

Kullanıcı ayarlarını geçersiz kılan özellik değerleri koleksiyonunu alır.

(Devralındığı yer: ComponentDesigner)
SnapLines

Bu denetim için önemli hizalama noktalarını temsil eden nesnelerin listesini SnapLine alır.

Verbs

Tasarımcıyla ilişkili bileşen tarafından desteklenen tasarım zamanı fiillerini alır.

(Devralındığı yer: ComponentDesigner)

Yöntemler

BaseWndProc(Message)

Windows iletilerini işler.

CanBeParentedTo(IDesigner)

Bu tasarımcının denetiminin belirtilen tasarımcının denetimi tarafından üst öğe oluşturulabileceğini gösterir.

DefWndProc(Message)

Windows iletileri için varsayılan işleme sağlar.

DisplayError(Exception)

Kullanıcı için belirtilen özel durumla ilgili bilgileri görüntüler.

Dispose()

ComponentDesigner tarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: ComponentDesigner)
Dispose(Boolean)

ControlDesigner tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.

DoDefaultAction()

Bileşendeki varsayılan olay için kaynak kod dosyasında bir yöntem imzası oluşturur ve kullanıcının imlecini bu konuma gider.

(Devralındığı yer: ComponentDesigner)
EnableDesignMode(Control, String)

Alt denetim için tasarım zamanı işlevselliğini etkinleştirir.

EnableDragDrop(Boolean)

Tasarlanan denetim için sürükle ve bırak desteğini etkinleştirir veya devre dışı bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetControlGlyph(GlyphSelectionType)

Bu denetimin sınırlarını temsil eden bir ControlBodyGlyph döndürür.

GetGlyphs(GlyphSelectionType)

Seçim kenarlıklarını temsil eden bir nesne koleksiyonunu Glyph alır ve standart denetim için tutamaçları alır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetHitTest(Point)

Belirtilen noktada fare tıklamasının denetim tarafından işlenip işlenmeyeceğini gösterir.

GetService(Type)

Tasarımcının bileşeninin tasarım modu sitesinden belirtilen hizmet türünü almaya çalışır.

(Devralındığı yer: ComponentDesigner)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
HookChildControls(Control)

Belirtilen denetimin alt denetimlerinden gelen iletileri tasarımcıya yönlendirir.

Initialize(IComponent)

Tasarımcıyı belirtilen bileşenle başlatır.

InitializeExistingComponent(IDictionary)

Mevcut bir bileşeni yeniden başlatır.

InitializeExistingComponent(IDictionary)

Mevcut bir bileşeni yeniden başlatıyor.

(Devralındığı yer: ComponentDesigner)
InitializeNewComponent(IDictionary)

Yeni oluşturulan bir bileşeni başlatır.

InitializeNewComponent(IDictionary)

Yeni oluşturulan bir bileşeni başlatır.

(Devralındığı yer: ComponentDesigner)
InitializeNonDefault()

Denetimin özelliklerini varsayılan olmayan değerlere başlatır.

InitializeNonDefault()
Geçersiz.
Geçersiz.

Varsayılanlar dışındaki ayarlara zaten başlatılmış olan içeri aktarılan bir bileşenin ayarlarını başlatır.

(Devralındığı yer: ComponentDesigner)
InternalControlDesigner(Int32)

içinde belirtilen dizine sahip iç denetim tasarımcısını ControlDesignerdöndürür.

InvokeGetInheritanceAttribute(ComponentDesigner)

InheritanceAttribute Belirtilen ComponentDesigneröğesinin değerini alır.

(Devralındığı yer: ComponentDesigner)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
NumberOfInternalControlDesigners()

içindeki ControlDesigneriç denetim tasarımcılarının sayısını döndürür.

OnContextMenu(Int32, Int32)

Bağlam menüsünü gösterir ve bağlam menüsü görüntülenmek üzereyken ek işlem gerçekleştirme fırsatı sağlar.

OnCreateHandle()

Denetim tutamacı oluşturulduktan hemen sonra ek işleme gerçekleştirme fırsatı sağlar.

OnDragComplete(DragEventArgs)

Sürükle ve bırak işlemini temizlemek için bir çağrı alır.

OnDragDrop(DragEventArgs)

Sürükle ve bırak nesnesi denetim tasarımcısı görünümüne bırakıldığında bir çağrı alır.

OnDragEnter(DragEventArgs)

Sürükle ve bırak işlemi denetim tasarımcısı görünümüne girdiğinde bir çağrı alır.

OnDragLeave(EventArgs)

Sürükle ve bırak işlemi denetim tasarımcısı görünümünden ayrıldığında bir çağrı alır.

OnDragOver(DragEventArgs)

Sürükle ve bırak nesnesi denetim tasarımcısı görünümünün üzerine sürüklendiğinde bir çağrı alır.

OnGiveFeedback(GiveFeedbackEventArgs)

Sürükle ve bırak işlemi devam ederken farenin konumuna göre görsel ipuçları sağlamak için sürükle ve bırak işlemi devam ederken bir çağrı alır.

OnMouseDragBegin(Int32, Int32)

Bileşenin üzerindeyken basılan ve tutulan sol fare düğmesine yanıt olarak bir çağrı alır.

OnMouseDragEnd(Boolean)

İşlemi tamamlamak veya iptal etmek için sürükle ve bırak işleminin sonunda bir çağrı alır.

OnMouseDragMove(Int32, Int32)

Sürükle ve bırak işlemi sırasında farenin her hareketi için bir çağrı alır.

OnMouseEnter()

Fare denetime ilk girdiğinde bir çağrı alır.

OnMouseHover()

Fare denetimin üzerine getirildikten sonra bir çağrı alır.

OnMouseLeave()

Fare denetime ilk girdiğinde bir çağrı alır.

OnPaintAdornments(PaintEventArgs)

Tasarımcının yönettiği denetim yüzeyini boyadığında bir çağrı alır, böylece tasarımcı denetimin üzerine ek kenarlıklar çizebilir.

OnSetComponentDefaults()
Geçersiz.
Geçersiz.

Tasarımcı başlatıldığında çağrılır.

OnSetCursor()

İmlecin her ayarlanması gerektiğinde bir çağrı alır.

PostFilterAttributes(IDictionary)

Tasarımcının aracılığıyla TypeDescriptorkullanıma verdiği öznitelik kümesindeki öğeleri değiştirmesine veya kaldırmasına izin verir.

(Devralındığı yer: ComponentDesigner)
PostFilterEvents(IDictionary)

Tasarımcının aracılığıyla TypeDescriptorkullanıma verdiği olay kümesindeki öğeleri değiştirmesine veya kaldırmasına izin verir.

(Devralındığı yer: ComponentDesigner)
PostFilterProperties(IDictionary)

Tasarımcının aracılığıyla kullanıma verdiği TypeDescriptorözellik kümesindeki öğeleri değiştirmesine veya kaldırmasına izin verir.

(Devralındığı yer: ComponentDesigner)
PreFilterAttributes(IDictionary)

Tasarımcının aracılığıyla kullanıma verdiği TypeDescriptoröznitelik kümesine eklemesine izin verir.

(Devralındığı yer: ComponentDesigner)
PreFilterEvents(IDictionary)

Tasarımcının aracılığıyla TypeDescriptorkullanıma verdiği olay kümesine eklemesine izin verir.

(Devralındığı yer: ComponentDesigner)
PreFilterProperties(IDictionary)

Bileşenin aracılığıyla TypeDescriptorkullanıma sunan özellik kümesini ayarlar.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Bu bileşenin IComponentChangeService değiştirildiğini bildirir.

(Devralındığı yer: ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

Bu bileşenin IComponentChangeService değiştirilmek üzere olduğunu bildirir.

(Devralındığı yer: ComponentDesigner)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
UnhookChildControls(Control)

Belirtilen denetimin alt öğelerine yönelik iletileri üst tasarımcı yerine her denetime yönlendirir.

WndProc(Message)

Windows iletilerini işler ve isteğe bağlı olarak bunları denetime yönlendirir.

Belirtik Arabirim Kullanımları

IDesignerFilter.PostFilterAttributes(IDictionary)

Bu üyenin açıklaması için yöntemine PostFilterAttributes(IDictionary) bakın.

(Devralındığı yer: ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

Bu üyenin açıklaması için yöntemine PostFilterEvents(IDictionary) bakın.

(Devralındığı yer: ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

Bu üyenin açıklaması için yöntemine PostFilterProperties(IDictionary) bakın.

(Devralındığı yer: ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

Bu üyenin açıklaması için yöntemine PreFilterAttributes(IDictionary) bakın.

(Devralındığı yer: ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

Bu üyenin açıklaması için yöntemine PreFilterEvents(IDictionary) bakın.

(Devralındığı yer: ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

Bu üyenin açıklaması için yöntemine PreFilterProperties(IDictionary) bakın.

(Devralındığı yer: ComponentDesigner)
ITreeDesigner.Children

Bu üyenin açıklaması için özelliğine Children bakın.

(Devralındığı yer: ComponentDesigner)
ITreeDesigner.Parent

Bu üyenin açıklaması için özelliğine Parent bakın.

(Devralındığı yer: ComponentDesigner)

Şunlara uygulanır

Ayrıca bkz.