Bagikan melalui


ComponentDesigner Kelas

Definisi

Memperluas perilaku mode desain komponen.

public ref class ComponentDesigner : IDisposable, System::ComponentModel::Design::IDesigner, System::ComponentModel::Design::IDesignerFilter
public ref class ComponentDesigner : IDisposable, System::ComponentModel::Design::IComponentInitializer, System::ComponentModel::Design::IDesignerFilter, System::ComponentModel::Design::ITreeDesigner
public class ComponentDesigner : IDisposable, System.ComponentModel.Design.IDesigner, System.ComponentModel.Design.IDesignerFilter
public class ComponentDesigner : IDisposable, System.ComponentModel.Design.IComponentInitializer, System.ComponentModel.Design.IDesignerFilter, System.ComponentModel.Design.ITreeDesigner
type ComponentDesigner = class
    interface IDesigner
    interface IDisposable
    interface IDesignerFilter
type ComponentDesigner = class
    interface ITreeDesigner
    interface IDesigner
    interface IDisposable
    interface IDesignerFilter
    interface IComponentInitializer
Public Class ComponentDesigner
Implements IDesigner, IDesignerFilter, IDisposable
Public Class ComponentDesigner
Implements IComponentInitializer, IDesignerFilter, IDisposable, ITreeDesigner
Warisan
ComponentDesigner
Turunan
Penerapan

Contoh

Contoh kode berikut memberikan contoh ComponentDesigner implementasi dan komponen contoh yang terkait dengan perancang. Perancang mengimplementasikan penimpaan Initialize metode yang memanggil metode dasar Initialize , penimpaan DoDefaultAction metode yang menampilkan MessageBox ketika komponen diklik dua kali, dan penimpaan Verbs pengakses properti yang menyediakan perintah menu kustom DesignerVerb ke menu pintasan untuk komponen.

#using <System.dll>
#using <System.Design.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>

using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Drawing;
using namespace System::Windows::Forms;

// Provides an example component designer.
ref class ExampleComponentDesigner: public ComponentDesigner
{
public:
   ExampleComponentDesigner()
   {
   }

   // This method provides an opportunity to perform processing when a designer is initialized.
   // The component parameter is the component that the designer is associated with.
   virtual void Initialize( IComponent^ component ) override
   {
      // Always call the base Initialize method in an of this method.
      ComponentDesigner::Initialize( component );
   }

   // This method is invoked when the associated component is double-clicked.
   virtual void DoDefaultAction() override
   {
      MessageBox::Show( "The event handler for the default action was invoked." );
   }

   // This method provides designer verbs.
   property DesignerVerbCollection^ Verbs 
   {
      virtual DesignerVerbCollection^ get() override
      {
         array<DesignerVerb^>^ newDesignerVerbs = {gcnew DesignerVerb( "Example Designer Verb Command", gcnew EventHandler( this, &ExampleComponentDesigner::onVerb ) )};
         return gcnew DesignerVerbCollection( newDesignerVerbs );
      }
   }

private:
   // Event handling method for the example designer verb
   void onVerb( Object^ sender, EventArgs^ e )
   {
      MessageBox::Show( "The event handler for the Example Designer Verb Command was invoked." );
   }
};

// Provides an example component associated with the example component designer.

[DesignerAttribute(ExampleComponentDesigner::typeid, IDesigner::typeid)]
ref class ExampleComponent: public Component
{
public:
   ExampleComponent(){}
};
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Windows.Forms;

namespace ExampleComponent
{	
    // Provides an example component designer.
    public class ExampleComponentDesigner : System.ComponentModel.Design.ComponentDesigner
    {
        public ExampleComponentDesigner()
        {
        }

        // This method provides an opportunity to perform processing when a designer is initialized.
        // The component parameter is the component that the designer is associated with.
        public override void Initialize(System.ComponentModel.IComponent component)
        {
            // Always call the base Initialize method in an override of this method.
            base.Initialize(component);
        }

        // This method is invoked when the associated component is double-clicked.
        public override void DoDefaultAction()
        {
            MessageBox.Show("The event handler for the default action was invoked.");
        }

        // This method provides designer verbs.
        public override System.ComponentModel.Design.DesignerVerbCollection Verbs
        {
            get
            {
                return new DesignerVerbCollection( new DesignerVerb[] { new DesignerVerb("Example Designer Verb Command", new EventHandler(this.onVerb)) } );
            }
        }

        // Event handling method for the example designer verb
        private void onVerb(object sender, EventArgs e)
        {
            MessageBox.Show("The event handler for the Example Designer Verb Command was invoked.");
        }
    }

    // Provides an example component associated with the example component designer.
    [DesignerAttribute(typeof(ExampleComponentDesigner), typeof(IDesigner))]
    public class ExampleComponent : System.ComponentModel.Component
    {		
        public ExampleComponent()
        {
        }
    }
}
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Windows.Forms

Namespace ExampleComponent

    ' Provides an example component designer.
    Public Class ExampleComponentDesigner
        Inherits System.ComponentModel.Design.ComponentDesigner

        Public Sub New()
        End Sub

        ' This method provides an opportunity to perform processing when a designer is initialized.
        ' The component parameter is the component that the designer is associated with.
        Public Overrides Sub Initialize(ByVal component As System.ComponentModel.IComponent)
            ' Always call the base Initialize method in an override of this method.
            MyBase.Initialize(component)
        End Sub

        ' This method is invoked when the associated component is double-clicked.
        Public Overrides Sub DoDefaultAction()
            MessageBox.Show("The event handler for the default action was invoked.")
        End Sub

        ' This method provides designer verbs.
        Public Overrides ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection
            Get
                Return New DesignerVerbCollection(New DesignerVerb() {New DesignerVerb("Example Designer Verb Command", New EventHandler(AddressOf Me.onVerb))})
            End Get
        End Property

        ' Event handling method for the example designer verb
        Private Sub onVerb(ByVal sender As Object, ByVal e As EventArgs)
            MessageBox.Show("The event handler for the Example Designer Verb Command was invoked.")
        End Sub
    End Class

    ' Provides an example component associated with the example component designer.
    <DesignerAttribute(GetType(ExampleComponentDesigner), GetType(IDesigner))> _
     Public Class ExampleComponent
        Inherits System.ComponentModel.Component

        Public Sub New()
        End Sub
    End Class

End Namespace 'ExampleComponent

Keterangan

Kelas ComponentDesigner perancang dasar menyediakan desainer sederhana yang dapat memperluas perilaku komponen terkait dalam mode desain.

ComponentDesigner menyediakan implementasi antarmuka kosong IDesignerFilter , yang metodenya dapat ditimpa untuk menyesuaikan atribut, properti, dan peristiwa komponen terkait pada waktu desain.

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

Kelas ComponentDesigner mengimplementasikan perilaku khusus untuk deskriptor properti komponen yang diwariskan. Jenis internal bernama InheritedPropertyDescriptor digunakan oleh implementasi default ComponentDesigner untuk berdiri di properti yang diwarisi dari kelas dasar. Ada dua kasus di mana deskriptor properti ini ditambahkan.

  1. Ke objek akar itu sendiri, yang dikembalikan oleh IDesignerHost.RootComponent properti , karena Anda mewarisi dari kelas dasarnya.

  2. Ke bidang yang ditemukan di kelas dasar objek akar. Bidang publik dan terlindungi dari kelas dasar ditambahkan ke perancang sehingga dapat dimanipulasi oleh pengguna.

Kelas InheritedPropertyDescriptor memodifikasi nilai default properti, sehingga nilai default adalah nilai saat ini pada instantiation objek. Ini karena properti diwarisi dari instans lain. Perancang menentukan pengaturan ulang nilai properti saat mengaturnya ke nilai yang ditetapkan oleh kelas yang diwariskan. Nilai ini mungkin berbeda dari nilai default yang disimpan dalam metadata.

Konstruktor

ComponentDesigner()

Menginisialisasi instans baru kelas ComponentDesigner.

Properti

ActionLists

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

AssociatedComponents

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

Component

Mendapatkan komponen yang didesain desainer ini.

InheritanceAttribute

Mendapatkan atribut yang menunjukkan jenis pewarisan komponen terkait.

Inherited

Mendapatkan nilai yang menunjukkan apakah komponen ini diwariskan.

ParentComponent

Mendapatkan komponen induk untuk perancang ini.

SetTextualDefaultProperty

Memperluas perilaku mode desain komponen.

ShadowProperties

Mendapatkan kumpulan nilai properti yang mengambil alih pengaturan pengguna.

Verbs

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

Metode

Dispose()

Merilis semua sumber daya yang ComponentDesignerdigunakan oleh .

Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh ComponentDesigner 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.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
Finalize()

Mencoba membebaskan sumber daya dengan memanggil Dispose(false) sebelum objek direklamasi oleh pengumpulan sampah.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetService(Type)

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

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
Initialize(IComponent)

Menyiapkan perancang untuk melihat, mengedit, dan merancang komponen yang ditentukan.

InitializeExistingComponent(IDictionary)

Menginisialisasi ulang komponen yang ada.

InitializeNewComponent(IDictionary)

Menginisialisasi komponen yang baru dibuat.

InitializeNonDefault()
Kedaluwarsa.
Kedaluwarsa.

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

InvokeGetInheritanceAttribute(ComponentDesigner)

InheritanceAttribute Mendapatkan dari yang ditentukanComponentDesigner.

MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnSetComponentDefaults()
Kedaluwarsa.
Kedaluwarsa.

Mengatur properti default untuk komponen.

PostFilterAttributes(IDictionary)

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

PostFilterEvents(IDictionary)

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

PostFilterProperties(IDictionary)

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

PreFilterAttributes(IDictionary)

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

PreFilterEvents(IDictionary)

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

PreFilterProperties(IDictionary)

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

RaiseComponentChanged(MemberDescriptor, Object, Object)

Memberi tahu IComponentChangeService bahwa komponen ini telah diubah.

RaiseComponentChanging(MemberDescriptor)

Memberi tahu IComponentChangeService bahwa komponen ini akan diubah.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

IDesignerFilter.PostFilterAttributes(IDictionary)

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

IDesignerFilter.PostFilterEvents(IDictionary)

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

IDesignerFilter.PostFilterProperties(IDictionary)

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

IDesignerFilter.PreFilterAttributes(IDictionary)

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

IDesignerFilter.PreFilterEvents(IDictionary)

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

IDesignerFilter.PreFilterProperties(IDictionary)

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

ITreeDesigner.Children

Untuk deskripsi anggota ini, lihat Children properti .

ITreeDesigner.Parent

Untuk deskripsi anggota ini, lihat Parent properti .

Berlaku untuk

Lihat juga