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

Das folgende Codebeispiel enthält eine Beispielimplementierung ComponentDesigner und eine dem Designer zugeordnete Beispielkomponente. Der Designer implementiert eine Überschreibung der -Methode, die Initialize die Basismethode Initialize aufruft, eine Überschreibung der -Methode, die DoDefaultAction ein MessageBox anzeigt, wenn auf die Komponente doppelt geklickt wird, und eine Überschreibung des Eigenschaftenzugriffsors, der Verbs einen benutzerdefinierten DesignerVerb Menübefehl im 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 stellt einen einfachen Designer bereit, 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 zuordnen, indem Sie einen DesignerAttributeverwenden. 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 Eigenschaftsdeskriptoren hinzugefügt werden.

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

  2. Für Felder, die in der Basisklasse des Stammobjekts gefunden werden. Öffentliche und geschützte Felder aus der Basisklasse werden dem Designer hinzugefügt, sodass 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 einem anderen instance geerbt wird. Der Designer definiert das Zurücksetzen des Eigenschaftswerts, indem er auf den Wert festgelegt wird, der von der geerbten Klasse festgelegt wurde. Dieser Wert kann sich vom Standardwert unterscheiden, der in Metadaten gespeichert ist.

Konstruktoren

ComponentDesigner()

Initialisiert eine neue Instanz der ComponentDesigner-Klasse.

Eigenschaften

ActionLists

Ruft die Entwurfszeit-Aktionslisten ab, die von der dem Designer zugeordneten Komponente unterstützt werden.

AssociatedComponents

Ruft die Auflistung der Komponenten ab, die der durch den Designer verwalteten Komponente zugeordnet ist.

Component

Ruft die Komponente ab, die von diesem Designer entworfen wird.

InheritanceAttribute

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

Inherited

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

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 überschreiben.

Verbs

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

Methoden

Dispose()

Gibt alle vom ComponentDesigner verwendeten Ressourcen frei.

Dispose(Boolean)

Gibt die von ComponentDesigner verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

DoDefaultAction()

Erstellt eine Methodensignatur in der Quellcodedatei für das Standardereignis der Komponente und verschiebt den Cursor des Benutzers an diese Position.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Finalize()

Versucht, durch Aufrufen von Dispose(false) Ressourcen freizugeben, bevor das Objekt durch die Garbage Collection wieder zugänglich gemacht wird.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetService(Type)

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

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
Initialize(IComponent)

Bereitet den Designer zum 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 mit Einstellungen initialisiert wurde, die nicht der Standardeinstellung entsprechen.

InvokeGetInheritanceAttribute(ComponentDesigner)

Ruft das InheritanceAttribute des angegebenen ComponentDesigner ab.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

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

Legt die Standardeigenschaften für die Komponente fest.

PostFilterAttributes(IDictionary)

Ermöglicht einem Designer das Ändern oder Entfernen von Elementen aus dem Satz von Attributen, der über einen TypeDescriptor verfügbar gemacht wird.

PostFilterEvents(IDictionary)

Ermöglicht einem Designer das Ändern oder Entfernen von Elementen aus dem Satz von Ereignissen, der über einen TypeDescriptor verfügbar gemacht wird.

PostFilterProperties(IDictionary)

Ermöglicht einem Designer das Ändern oder Entfernen von Elementen aus dem Satz von Eigenschaften, der über einen TypeDescriptor verfügbar gemacht wird.

PreFilterAttributes(IDictionary)

Ermöglicht einem Designer das Hinzufügen zu dem Satz von Attributen, der über einen TypeDescriptor verfügbar gemacht wird.

PreFilterEvents(IDictionary)

Ermöglicht einem Designer ein Hinzufügen zu dem Satz von Ereignissen, der durch einen TypeDescriptor verfügbar gemacht wird.

PreFilterProperties(IDictionary)

Ermöglicht einem Designer ein Hinzufügen zu dem Satz von Eigenschaften, der durch einen TypeDescriptor verfügbar gemacht wird.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Benachrichtigt IComponentChangeService darüber, dass diese Komponente geändert wurde.

RaiseComponentChanging(MemberDescriptor)

Benachrichtigt IComponentChangeService darüber, dass diese Komponente gerade geändert wird.

ToString()

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

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IDesignerFilter.PostFilterAttributes(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PostFilterAttributes(IDictionary)-Methode.

IDesignerFilter.PostFilterEvents(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PostFilterEvents(IDictionary)-Methode.

IDesignerFilter.PostFilterProperties(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PostFilterProperties(IDictionary)-Methode.

IDesignerFilter.PreFilterAttributes(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PreFilterAttributes(IDictionary)-Methode.

IDesignerFilter.PreFilterEvents(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PreFilterEvents(IDictionary)-Methode.

IDesignerFilter.PreFilterProperties(IDictionary)

Eine Beschreibung dieses Members finden Sie unter der PreFilterProperties(IDictionary)-Methode.

ITreeDesigner.Children

Eine Beschreibung dieses Members finden Sie unter der Children-Eigenschaft.

ITreeDesigner.Parent

Eine Beschreibung dieses Members finden Sie unter der Parent-Eigenschaft.

Gilt für:

Weitere Informationen