Freigeben über


ComponentDesigner Klasse

Definition

Erweitert das Entwurfsmodusverhalten einer Komponente.

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
Vererbung
ComponentDesigner
Abgeleitet
Implementiert

Beispiele

Im folgenden Codebeispiel wird eine Beispielimplementierung ComponentDesigner und eine Beispielkomponente bereitgestellt, die dem Designer zugeordnet ist. Der Designer implementiert eine Außerkraftsetzung der Initialize Methode, die die Basismethode Initialize aufruft, eine Außerkraftsetzung der DoDefaultAction Methode, die anzeigt MessageBox , wenn die Komponente doppelt geklickt wird, und eine Außerkraftsetzung des Verbs Eigenschaftenaccessors, der einen benutzerdefinierten DesignerVerb Menübefehl für das Kontextmenü für die Komponente bereitstellt.

#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

Hinweise

Die ComponentDesigner Basis-Designerklasse bietet einen einfachen Designer, der das Verhalten einer zugeordneten Komponente im Entwurfsmodus erweitern kann.

ComponentDesigner stellt eine leere IDesignerFilter Schnittstellenimplementierung bereit, deren Methoden überschrieben werden können, um die Attribute, Eigenschaften und Ereignisse der zugeordneten Komponente zur Entwurfszeit anzupassen.

Sie können einen Designer einem Typ mithilfe eines DesignerAttributeTyps zuordnen. Eine Übersicht über das Anpassen des Entwurfszeitverhaltens finden Sie unter Erweitern Design-Time Support.

Die ComponentDesigner Klasse implementiert ein spezielles Verhalten für die Eigenschaftendeskriptoren geerbter Komponenten. Ein interner Typ namens InheritedPropertyDescriptor wird von der Standardimplementierung ComponentDesigner verwendet, um für Eigenschaften zu stehen, die von einer Basisklasse geerbt werden. Es gibt zwei Fälle, in denen diese Eigenschaftendeskriptoren hinzugefügt werden.

  1. An das Stammobjekt selbst, das von der IDesignerHost.RootComponent Eigenschaft zurückgegeben wird, da Sie von der Basisklasse erben.

  2. To fields found in the base class of the root object. Öffentliche und geschützte Felder aus der Basisklasse werden dem Designer hinzugefügt, damit sie vom Benutzer bearbeitet werden können.

Die InheritedPropertyDescriptor Klasse ändert den Standardwert einer Eigenschaft, sodass der Standardwert der aktuelle Wert bei der Objektinstanziierung ist. Dies liegt daran, dass die Eigenschaft von einer anderen Instanz geerbt wird. Der Designer definiert das Zurücksetzen des Eigenschaftswerts als Festlegen auf den Wert, der von der geerbten Klasse festgelegt wurde. Dieser Wert kann sich von dem Standardwert unterscheiden, der in Metadaten gespeichert ist.

Konstruktoren

Name Beschreibung
ComponentDesigner()

Initialisiert eine neue Instanz der ComponentDesigner-Klasse.

Eigenschaften

Name Beschreibung
ActionLists

Ruft die Entwurfszeitaktionslisten ab, die von der Komponente unterstützt werden, die dem Designer zugeordnet ist.

AssociatedComponents

Ruft die Auflistung der Komponenten ab, die der vom Designer verwalteten Komponente zugeordnet sind.

Component

Ruft die Komponente ab, die dieser Designer entwerfen soll.

InheritanceAttribute

Ruft ein Attribut ab, das den Vererbungstyp der zugeordneten Komponente angibt.

Inherited

Ruft einen Wert ab, der angibt, ob diese Komponente geerbt wird.

ParentComponent

Ruft die übergeordnete Komponente für diesen Designer ab.

SetTextualDefaultProperty

Erweitert das Entwurfsmodusverhalten einer Komponente.

ShadowProperties

Ruft eine Auflistung von Eigenschaftswerten ab, die Benutzereinstellungen außer Kraft setzen.

Verbs

Ruft die Entwurfszeitverben ab, die von der Komponente unterstützt werden, die dem Designer zugeordnet ist.

Methoden

Name Beschreibung
Dispose()

Veröffentlicht alle ressourcen, die von der ComponentDesigner.

Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den ComponentDesigner verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

DoDefaultAction()

Erstellt eine Methodensignatur in der Quellcodedatei für das Standardereignis in der Komponente und navigiert den Cursor des Benutzers zu diesem Speicherort.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
Finalize()

Versucht, Ressourcen freizugeben, indem aufgerufen Dispose(false) wird, bevor das Objekt von der Garbage Collection beansprucht wird.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetService(Type)

Versucht, den angegebenen Diensttyp von der Entwurfsmoduswebsite der Komponente des Designers abzurufen.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
Initialize(IComponent)

Bereitet den Designer auf das Anzeigen, Bearbeiten und Entwerfen der angegebenen Komponente vor.

InitializeExistingComponent(IDictionary)

Initialisiert eine vorhandene Komponente erneut.

InitializeNewComponent(IDictionary)

Initialisiert eine neu erstellte Komponente.

InitializeNonDefault()
Veraltet.
Veraltet.

Initialisiert die Einstellungen für eine importierte Komponente, die bereits in anderen Einstellungen als den Standardwerten initialisiert ist.

InvokeGetInheritanceAttribute(ComponentDesigner)

Ruft den InheritanceAttribute angegebenen ComponentDesignerab.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
OnSetComponentDefaults()
Veraltet.
Veraltet.

Legt die Standardeigenschaften für die Komponente fest.

PostFilterAttributes(IDictionary)

Ermöglicht es einem Designer, Elemente aus der Gruppe von Attributen zu ändern oder zu entfernen, die er über eine TypeDescriptor.

PostFilterEvents(IDictionary)

Ermöglicht einem Designer das Ändern oder Entfernen von Elementen aus der Gruppe von Ereignissen, die er über eine TypeDescriptor.

PostFilterProperties(IDictionary)

Ermöglicht es einem Designer, Elemente aus dem Satz von Eigenschaften zu ändern oder zu entfernen, die er über eine TypeDescriptor.

PreFilterAttributes(IDictionary)

Ermöglicht es einem Designer, den Satz von Attributen hinzuzufügen, die er über eine TypeDescriptor.

PreFilterEvents(IDictionary)

Ermöglicht es einem Designer, den Satz von Ereignissen hinzuzufügen, die er über eine TypeDescriptor.

PreFilterProperties(IDictionary)

Ermöglicht es einem Designer, den Satz von Eigenschaften hinzuzufügen, die er über eine TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Benachrichtigt die IComponentChangeService Änderung dieser Komponente.

RaiseComponentChanging(MemberDescriptor)

Benachrichtigt die IComponentChangeService Komponente darüber, dass diese Komponente geändert werden soll.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
IDesignerFilter.PostFilterAttributes(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PostFilterAttributes(IDictionary) Methode.

IDesignerFilter.PostFilterEvents(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PostFilterEvents(IDictionary) Methode.

IDesignerFilter.PostFilterProperties(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PostFilterProperties(IDictionary) Methode.

IDesignerFilter.PreFilterAttributes(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PreFilterAttributes(IDictionary) Methode.

IDesignerFilter.PreFilterEvents(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PreFilterEvents(IDictionary) Methode.

IDesignerFilter.PreFilterProperties(IDictionary)

Eine Beschreibung dieses Elements finden Sie in der PreFilterProperties(IDictionary) Methode.

ITreeDesigner.Children

Eine Beschreibung dieses Elements finden Sie in der Children Eigenschaft.

ITreeDesigner.Parent

Eine Beschreibung dieses Elements finden Sie in der Parent Eigenschaft.

Gilt für:

Weitere Informationen