ComponentDesigner Klasa

Definicja

Rozszerza zachowanie trybu projektowania składnika.

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
Dziedziczenie
ComponentDesigner
Pochodne
Implementuje

Przykłady

Poniższy przykład kodu zawiera przykładową ComponentDesigner implementację i przykładowy składnik skojarzony z projektantem. Projektant implementuje przesłonięcia Initialize metody, która wywołuje metodę podstawową Initialize , przesłonięć DoDefaultAction metodę, która jest wyświetlana MessageBox po dwukrotnym kliknięciu składnika i przesłonięcia Verbs metody dostępu właściwości, która dostarcza niestandardowe DesignerVerb polecenie menu do menu skrótów dla składnika.

#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

Uwagi

Klasa projektanta ComponentDesigner podstawowego udostępnia prostego projektanta, który może rozszerzyć zachowanie skojarzonego składnika w trybie projektowania.

ComponentDesigner Udostępnia pustą IDesignerFilter implementację interfejsu, której metody można zastąpić w celu dostosowania atrybutów, właściwości i zdarzeń skojarzonego składnika w czasie projektowania.

Projektanta można skojarzyć z typem przy użyciu elementu DesignerAttribute. Aby zapoznać się z omówieniem dostosowywania zachowania w czasie projektowania, zobacz Rozszerzanie obsługi Design-Time.

Klasa ComponentDesigner implementuje specjalne zachowanie deskryptorów właściwości odziedziczonych składników. Typ wewnętrzny o nazwie InheritedPropertyDescriptor jest używany przez domyślną ComponentDesigner implementację, aby wyróżniać właściwości dziedziczone z klasy bazowej. Istnieją dwa przypadki, w których te deskryptory właściwości są dodawane.

  1. Do samego obiektu głównego, który jest zwracany przez IDesignerHost.RootComponent właściwość , ponieważ dziedziczysz z jej klasy bazowej.

  2. Do pól znalezionych w klasie bazowej obiektu głównego. Pola publiczne i chronione z klasy bazowej są dodawane do projektanta, aby można było nimi manipulować przez użytkownika.

Klasa InheritedPropertyDescriptor modyfikuje wartość domyślną właściwości, tak aby wartość domyślna to bieżąca wartość wystąpienia obiektu. Dzieje się tak, ponieważ właściwość jest dziedziczona z innego wystąpienia. Projektant definiuje zresetowanie wartości właściwości jako ustawienie jej na wartość ustawioną przez dziedziczonej klasy. Ta wartość może różnić się od wartości domyślnej przechowywanej w metadanych.

Konstruktory

ComponentDesigner()

Inicjuje nowe wystąpienie klasy ComponentDesigner.

Właściwości

ActionLists

Pobiera listę akcji czasu projektowania obsługiwaną przez składnik skojarzony z projektantem.

AssociatedComponents

Pobiera kolekcję składników skojarzonych ze składnikiem zarządzanym przez projektanta.

Component

Pobiera składnik, który projektuje ten projektant.

InheritanceAttribute

Pobiera atrybut wskazujący typ dziedziczenia skojarzonego składnika.

Inherited

Pobiera wartość wskazującą, czy ten składnik jest dziedziczony.

ParentComponent

Pobiera składnik nadrzędny dla tego projektanta.

ShadowProperties

Pobiera kolekcję wartości właściwości, które zastępują ustawienia użytkownika.

Verbs

Pobiera czas projektowania czasowniki obsługiwane przez składnik skojarzony z projektantem.

Metody

Dispose()

Zwalnia wszelkie zasoby używane przez element ComponentDesigner.

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element ComponentDesigner i opcjonalnie zwalnia zasoby zarządzane.

DoDefaultAction()

Tworzy podpis metody w pliku kodu źródłowego dla zdarzenia domyślnego w składniku i przechodzi kursor użytkownika do tej lokalizacji.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Finalize()

Próbuje zwolnić zasoby przez wywołanie metody Dispose(false) przed odzyskaniem obiektu przez odzyskiwanie pamięci.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetService(Type)

Próbuje pobrać określony typ usługi z witryny trybu projektowania składnika projektanta.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
Initialize(IComponent)

Przygotowuje projektanta do wyświetlania, edytowania i projektowania określonego składnika.

InitializeExistingComponent(IDictionary)

Ponownie inicjuje istniejący składnik.

InitializeNewComponent(IDictionary)

Inicjuje nowo utworzony składnik.

InitializeNonDefault()
Nieaktualne.
Nieaktualne.

Inicjuje ustawienia zaimportowanego składnika, który jest już inicjowany do ustawień innych niż domyślne.

InvokeGetInheritanceAttribute(ComponentDesigner)

Pobiera element InheritanceAttribute określonego ComponentDesignerelementu .

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnSetComponentDefaults()
Nieaktualne.
Nieaktualne.

Ustawia domyślne właściwości składnika.

PostFilterAttributes(IDictionary)

Umożliwia projektantowi zmianę lub usunięcie elementów z zestawu atrybutów, które uwidacznia za pośrednictwem elementu TypeDescriptor.

PostFilterEvents(IDictionary)

Umożliwia projektantowi zmianę lub usunięcie elementów z zestawu zdarzeń udostępnianych za pośrednictwem elementu TypeDescriptor.

PostFilterProperties(IDictionary)

Umożliwia projektantowi zmianę lub usunięcie elementów z zestawu właściwości, które uwidacznia za pośrednictwem elementu TypeDescriptor.

PreFilterAttributes(IDictionary)

Umożliwia projektantowi dodanie do zestawu atrybutów, które uwidacznia za pośrednictwem elementu TypeDescriptor.

PreFilterEvents(IDictionary)

Umożliwia projektantowi dodanie do zestawu zdarzeń, które uwidacznia za pośrednictwem elementu TypeDescriptor.

PreFilterProperties(IDictionary)

Umożliwia projektantowi dodanie do zestawu właściwości, które uwidacznia za pośrednictwem elementu TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Powiadamia o IComponentChangeService zmianie tego składnika.

RaiseComponentChanging(MemberDescriptor)

Powiadamia o tym IComponentChangeService , że ten składnik ma zostać zmieniony.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IDesignerFilter.PostFilterAttributes(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PostFilterAttributes(IDictionary) .

IDesignerFilter.PostFilterEvents(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PostFilterEvents(IDictionary) .

IDesignerFilter.PostFilterProperties(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PostFilterProperties(IDictionary) .

IDesignerFilter.PreFilterAttributes(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PreFilterAttributes(IDictionary) .

IDesignerFilter.PreFilterEvents(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PreFilterEvents(IDictionary) .

IDesignerFilter.PreFilterProperties(IDictionary)

Aby uzyskać opis tego elementu członkowskiego, zobacz metodę PreFilterProperties(IDictionary) .

ITreeDesigner.Children

Aby uzyskać opis tego elementu członkowskiego, zobacz Children właściwość .

ITreeDesigner.Parent

Aby uzyskać opis tego elementu członkowskiego, zobacz Parent właściwość .

Dotyczy

Zobacz też