ControlDesigner Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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. |