Bagikan melalui


ControlDesigner Kelas

Definisi

Memperluas perilaku mode desain dari 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
Warisan
ControlDesigner
Turunan

Contoh

Contoh ControlDesigner implementasi berikut menunjukkan penanganan MouseEnter dan MouseLeave peristiwa, menggambar kontrol dari kode perancang, dan menggunakan bagian IDesignerFilter dari antarmuka untuk menambahkan properti untuk kontrol pada waktu desain. Kode sampel berikut berisi perancang dan sampel kontrol pengguna yang terkait dengan perancang. Untuk membuat sampel ini, kompilasi sampel ke pustaka kelas, tambahkan referensi ke pustaka ke proyek Windows Forms, tambahkan kontrol ke Kotak Alat, dan tambahkan instans kontrol ke formulir Anda. Saat Anda menunjuk ke kontrol, kerangka dalam perimeter kontrol disorot OutlineColor , dan warna yang digunakan untuk menggambar kerangka sesuai dengan properti yang telah ditambahkan perancang ke properti yang tercantum untuk kontrol.

Tambahkan referensi ke rakitan System.Design untuk mengkompilasi contoh kode.

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

Keterangan

ControlDesigner menyediakan kelas dasar untuk perancang komponen yang berasal dari Control. Selain metode dan fungsionalitas yang diwarisi dari ComponentDesigner kelas , ControlDesigner menyediakan metode tambahan untuk mendukung perluasan dan perubahan perilaku yang terkait Control pada waktu desain.

Anda dapat mengaitkan perancang dengan jenis menggunakan DesignerAttribute. Untuk gambaran umum menyesuaikan perilaku waktu desain, lihat Memperluas Dukungan Design-Time.

Konstruktor

ControlDesigner()

Menginisialisasi instans baru kelas ControlDesigner.

Bidang

accessibilityObj

Menentukan objek aksesibilitas untuk perancang.

InvalidPoint

Mendefinisikan lokal Point yang mewakili nilai yang tidak valid Point.

Properti

AccessibilityObject

Mendapatkan yang AccessibleObject ditetapkan ke kontrol.

ActionLists

Mendapatkan daftar tindakan waktu desain yang didukung oleh komponen yang terkait dengan perancang.

(Diperoleh dari ComponentDesigner)
AssociatedComponents

Mendapatkan koleksi komponen yang terkait dengan komponen yang dikelola oleh perancang.

AutoResizeHandles

Mendapatkan atau menetapkan nilai yang menunjukkan apakah alokasi penanganan perubahan ukuran bergantung pada nilai AutoSize properti.

BehaviorService

BehaviorService Mendapatkan dari lingkungan desain.

Component

Mendapatkan komponen yang didesain desainer ini.

(Diperoleh dari ComponentDesigner)
Control

Mendapatkan kontrol yang didesain desainer.

EnableDragRect

Mendapatkan nilai yang menunjukkan apakah persegi panjang seret dapat digambar pada komponen perancang ini.

InheritanceAttribute

Mendapatkan perancang InheritanceAttribute .

InheritanceAttribute

Mendapatkan atribut yang menunjukkan jenis pewarisan komponen terkait.

(Diperoleh dari ComponentDesigner)
Inherited

Mendapatkan nilai yang menunjukkan apakah komponen ini diwariskan.

(Diperoleh dari ComponentDesigner)
ParentComponent

Mendapatkan komponen induk untuk ControlDesigner.

ParentComponent

Mendapatkan komponen induk untuk perancang ini.

(Diperoleh dari ComponentDesigner)
ParticipatesWithSnapLines

Mendapatkan nilai yang menunjukkan apakah akan memungkinkan perataan ControlDesigner snapline selama operasi seret.

SelectionRules

Mendapatkan aturan pemilihan yang menunjukkan kemampuan pergerakan komponen.

SetTextualDefaultProperty

Memperluas perilaku mode desain dari Control.

(Diperoleh dari ComponentDesigner)
ShadowProperties

Mendapatkan kumpulan nilai properti yang mengambil alih pengaturan pengguna.

(Diperoleh dari ComponentDesigner)
SnapLines

Mendapatkan daftar SnapLine objek yang mewakili titik perataan yang signifikan untuk kontrol ini.

Verbs

Mendapatkan kata kerja waktu desain yang didukung oleh komponen yang terkait dengan perancang.

(Diperoleh dari ComponentDesigner)

Metode

BaseWndProc(Message)

Memproses pesan Windows.

CanBeParentedTo(IDesigner)

Menunjukkan apakah kontrol perancang ini dapat diinduki oleh kontrol perancang yang ditentukan.

DefWndProc(Message)

Menyediakan pemrosesan default untuk pesan Windows.

DisplayError(Exception)

Menampilkan informasi tentang pengecualian yang ditentukan kepada pengguna.

Dispose()

Merilis semua sumber daya yang ComponentDesignerdigunakan oleh .

(Diperoleh dari ComponentDesigner)
Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh ControlDesigner dan secara opsional merilis sumber daya terkelola.

DoDefaultAction()

Membuat tanda tangan metode dalam file kode sumber untuk peristiwa default pada komponen dan menavigasi kursor pengguna ke lokasi tersebut.

(Diperoleh dari ComponentDesigner)
EnableDesignMode(Control, String)

Mengaktifkan fungsionalitas waktu desain untuk kontrol anak.

EnableDragDrop(Boolean)

Mengaktifkan atau menonaktifkan dukungan seret dan letakkan untuk kontrol yang dirancang.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetControlGlyph(GlyphSelectionType)

Mengembalikan yang ControlBodyGlyph mewakili batas kontrol ini.

GetGlyphs(GlyphSelectionType)

Mendapatkan kumpulan Glyph objek yang mewakili batas pilihan dan pegangan ambil untuk kontrol standar.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetHitTest(Point)

Menunjukkan apakah klik mouse pada titik yang ditentukan harus ditangani oleh kontrol.

GetService(Type)

Upaya untuk mengambil jenis layanan yang ditentukan dari situs mode desain komponen perancang.

(Diperoleh dari ComponentDesigner)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
HookChildControls(Control)

Merutekan pesan dari kontrol anak dari kontrol yang ditentukan ke perancang.

Initialize(IComponent)

Menginisialisasi perancang dengan komponen yang ditentukan.

InitializeExistingComponent(IDictionary)

Menginisialisasi ulang komponen yang ada.

InitializeExistingComponent(IDictionary)

Menginisialisasi ulang komponen yang ada.

(Diperoleh dari ComponentDesigner)
InitializeNewComponent(IDictionary)

Menginisialisasi komponen yang baru dibuat.

InitializeNewComponent(IDictionary)

Menginisialisasi komponen yang baru dibuat.

(Diperoleh dari ComponentDesigner)
InitializeNonDefault()

Menginisialisasi properti kontrol ke nilai non-default apa pun.

InitializeNonDefault()
Kedaluwarsa.
Kedaluwarsa.

Menginisialisasi pengaturan untuk komponen impor yang sudah diinisialisasi ke pengaturan selain default.

(Diperoleh dari ComponentDesigner)
InternalControlDesigner(Int32)

Mengembalikan perancang kontrol internal dengan indeks yang ditentukan di ControlDesigner.

InvokeGetInheritanceAttribute(ComponentDesigner)

InheritanceAttribute Mendapatkan dari yang ditentukanComponentDesigner.

(Diperoleh dari ComponentDesigner)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
NumberOfInternalControlDesigners()

Mengembalikan jumlah perancang kontrol internal di ControlDesigner.

OnContextMenu(Int32, Int32)

Menampilkan menu konteks dan memberikan kesempatan untuk melakukan pemrosesan tambahan saat menu konteks akan ditampilkan.

OnCreateHandle()

Memberikan kesempatan untuk melakukan pemrosesan tambahan segera setelah handel kontrol dibuat.

OnDragComplete(DragEventArgs)

Menerima panggilan untuk membersihkan operasi seret dan letakkan.

OnDragDrop(DragEventArgs)

Menerima panggilan ketika objek seret dan letakkan dihilangkan ke tampilan perancang kontrol.

OnDragEnter(DragEventArgs)

Menerima panggilan saat operasi seret dan letakkan memasuki tampilan perancang kontrol.

OnDragLeave(EventArgs)

Menerima panggilan saat operasi seret dan letakkan meninggalkan tampilan perancang kontrol.

OnDragOver(DragEventArgs)

Menerima panggilan saat objek seret dan letakkan diseret melalui tampilan perancang kontrol.

OnGiveFeedback(GiveFeedbackEventArgs)

Menerima panggilan ketika operasi seret dan letakkan sedang berlangsung untuk memberikan isjin visual berdasarkan lokasi mouse saat operasi seret sedang berlangsung.

OnMouseDragBegin(Int32, Int32)

Menerima panggilan sebagai respons terhadap tombol mouse kiri yang ditekan dan ditahan saat berada di atas komponen.

OnMouseDragEnd(Boolean)

Menerima panggilan di akhir operasi seret dan letakkan untuk menyelesaikan atau membatalkan operasi.

OnMouseDragMove(Int32, Int32)

Menerima panggilan untuk setiap gerakan mouse selama operasi seret dan letakkan.

OnMouseEnter()

Menerima panggilan ketika mouse pertama kali memasuki kontrol.

OnMouseHover()

Menerima panggilan setelah mouse mengarah ke kontrol.

OnMouseLeave()

Menerima panggilan ketika mouse pertama kali memasuki kontrol.

OnPaintAdornments(PaintEventArgs)

Menerima panggilan ketika kontrol yang mengelola perancang telah melukis permukaannya sehingga perancang dapat melukis hiasan tambahan di atas kontrol.

OnSetComponentDefaults()
Kedaluwarsa.
Kedaluwarsa.

Dipanggil ketika perancang diinisialisasi.

OnSetCursor()

Menerima panggilan setiap kali kursor perlu diatur.

PostFilterAttributes(IDictionary)

Memungkinkan perancang untuk mengubah atau menghapus item dari sekumpulan atribut yang diekspos melalui TypeDescriptor.

(Diperoleh dari ComponentDesigner)
PostFilterEvents(IDictionary)

Memungkinkan perancang untuk mengubah atau menghapus item dari serangkaian peristiwa yang diekspos melalui TypeDescriptor.

(Diperoleh dari ComponentDesigner)
PostFilterProperties(IDictionary)

Memungkinkan perancang untuk mengubah atau menghapus item dari sekumpulan properti yang diekspos melalui TypeDescriptor.

(Diperoleh dari ComponentDesigner)
PreFilterAttributes(IDictionary)

Memungkinkan perancang untuk menambahkan ke sekumpulan atribut yang diekspos melalui TypeDescriptor.

(Diperoleh dari ComponentDesigner)
PreFilterEvents(IDictionary)

Memungkinkan perancang untuk menambahkan ke serangkaian peristiwa yang diekspos melalui TypeDescriptor.

(Diperoleh dari ComponentDesigner)
PreFilterProperties(IDictionary)

Menyesuaikan kumpulan properti yang diekspos komponen melalui TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Memberi tahu IComponentChangeService bahwa komponen ini telah diubah.

(Diperoleh dari ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

Memberi tahu IComponentChangeService bahwa komponen ini akan diubah.

(Diperoleh dari ComponentDesigner)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
UnhookChildControls(Control)

Merutekan pesan untuk turunan kontrol yang ditentukan ke setiap kontrol daripada ke perancang induk.

WndProc(Message)

Memproses pesan Windows dan secara opsional merutekannya ke kontrol.

Implementasi Antarmuka Eksplisit

IDesignerFilter.PostFilterAttributes(IDictionary)

Untuk deskripsi anggota ini, lihat PostFilterAttributes(IDictionary) metode .

(Diperoleh dari ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

Untuk deskripsi anggota ini, lihat PostFilterEvents(IDictionary) metode .

(Diperoleh dari ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

Untuk deskripsi anggota ini, lihat PostFilterProperties(IDictionary) metode .

(Diperoleh dari ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

Untuk deskripsi anggota ini, lihat PreFilterAttributes(IDictionary) metode .

(Diperoleh dari ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

Untuk deskripsi anggota ini, lihat PreFilterEvents(IDictionary) metode .

(Diperoleh dari ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

Untuk deskripsi anggota ini, lihat PreFilterProperties(IDictionary) metode .

(Diperoleh dari ComponentDesigner)
ITreeDesigner.Children

Untuk deskripsi anggota ini, lihat Children properti .

(Diperoleh dari ComponentDesigner)
ITreeDesigner.Parent

Untuk deskripsi anggota ini, lihat Parent properti .

(Diperoleh dari ComponentDesigner)

Berlaku untuk

Lihat juga