ComponentDesigner Klass

Definition

Utökar designlägesbeteendet för en komponent.

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
Arv
ComponentDesigner
Härledda
Implementeringar

Exempel

Följande kodexempel innehåller ett exempel ComponentDesigner på implementering och en exempelkomponent som är associerad med designern. Designern implementerar en åsidosättning av Initialize metoden som anropar basmetoden Initialize , en åsidosättning av metoden DoDefaultAction som visar en MessageBox när komponenten dubbelklickas och en åsidosättning av Verbs egenskapsåtkomsten som tillhandahåller ett anpassat DesignerVerb menykommando till snabbmenyn för komponenten.

#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

Kommentarer

Basdesignerklassen ComponentDesigner ger en enkel designer som kan utöka beteendet för en associerad komponent i designläge.

ComponentDesigner tillhandahåller en tom IDesignerFilter gränssnittsimplementering vars metoder kan åsidosättas för att justera attribut, egenskaper och händelser för den associerade komponenten vid designtillfället.

Du kan associera en designer med en typ med hjälp av en DesignerAttribute. En översikt över hur du anpassar designtidsbeteende finns i Utöka Design-Time Support.

Klassen ComponentDesigner implementerar ett särskilt beteende för egenskapsbeskrivningar för ärvda komponenter. En intern typ med namnet InheritedPropertyDescriptor används av standardimplementeringen ComponentDesigner för att användas för egenskaper som ärvs från en basklass. Det finns två fall där dessa egenskapsbeskrivningar läggs till.

  1. Till själva rotobjektet, som returneras av IDesignerHost.RootComponent egenskapen, eftersom du ärver från dess basklass.

  2. Till fält som finns i basklassen för rotobjektet. Offentliga och skyddade fält från basklassen läggs till i designern så att de kan manipuleras av användaren.

Klassen InheritedPropertyDescriptor ändrar standardvärdet för en egenskap, så att standardvärdet är det aktuella värdet vid instansiering av objekt. Det beror på att egenskapen ärvs från en annan instans. Designern definierar återställning av egenskapsvärdet som inställning till det värde som har angetts av den ärvda klassen. Det här värdet kan skilja sig från standardvärdet som lagras i metadata.

Konstruktorer

Name Description
ComponentDesigner()

Initierar en ny instans av ComponentDesigner klassen.

Egenskaper

Name Description
ActionLists

Hämtar de åtgärdslistor för designtid som stöds av komponenten som är associerad med designern.

AssociatedComponents

Hämtar den samling komponenter som är associerade med komponenten som hanteras av designern.

Component

Hämtar komponenten som designern designar.

InheritanceAttribute

Hämtar ett attribut som anger typen av arv för den associerade komponenten.

Inherited

Hämtar ett värde som anger om den här komponenten ärvs.

ParentComponent

Hämtar den överordnade komponenten för den här designern.

ShadowProperties

Hämtar en samling egenskapsvärden som åsidosätter användarinställningar.

Verbs

Hämtar designtidsverb som stöds av komponenten som är associerad med designern.

Metoder

Name Description
Dispose()

Släpper alla resurser som används av ComponentDesigner.

Dispose(Boolean)

Släpper de ohanterade resurser som används av ComponentDesigner och släpper eventuellt de hanterade resurserna.

DoDefaultAction()

Skapar en metodsignatur i källkodsfilen för standardhändelsen på komponenten och navigerar användarens markören till den platsen.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
Finalize()

Försöker frigöra resurser genom att anropa Dispose(false) innan objektet frigörs av skräpinsamling.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetService(Type)

Försöker hämta den angivna typen av tjänst från designlägesplatsen för designerns komponent.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
Initialize(IComponent)

Förbereder designern för att visa, redigera och utforma den angivna komponenten.

InitializeExistingComponent(IDictionary)

Initierar om en befintlig komponent.

InitializeNewComponent(IDictionary)

Initierar en nyskapade komponent.

InitializeNonDefault()
Föråldrad.

Initierar inställningarna för en importerad komponent som redan har initierats till andra inställningar än standardinställningarna.

InvokeGetInheritanceAttribute(ComponentDesigner)

Hämtar den InheritanceAttribute angivna ComponentDesigner.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnSetComponentDefaults()
Föråldrad.

Anger standardegenskaperna för komponenten.

PostFilterAttributes(IDictionary)

Gör att en designer kan ändra eller ta bort objekt från den uppsättning attribut som den exponerar via en TypeDescriptor.

PostFilterEvents(IDictionary)

Gör att en designer kan ändra eller ta bort objekt från den uppsättning händelser som den exponerar via en TypeDescriptor.

PostFilterProperties(IDictionary)

Gör att en designer kan ändra eller ta bort objekt från den uppsättning egenskaper som den exponerar via en TypeDescriptor.

PreFilterAttributes(IDictionary)

Gör att en designer kan lägga till i den uppsättning attribut som den exponerar via en TypeDescriptor.

PreFilterEvents(IDictionary)

Tillåter att en designer lägger till i den uppsättning händelser som den exponerar via en TypeDescriptor.

PreFilterProperties(IDictionary)

Gör att en designer kan lägga till i den uppsättning egenskaper som den exponerar via en TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Meddelar IComponentChangeService att den här komponenten har ändrats.

RaiseComponentChanging(MemberDescriptor)

IComponentChangeService Meddelar att den här komponenten håller på att ändras.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
IDesignerFilter.PostFilterAttributes(IDictionary)

En beskrivning av den här medlemmen finns i PostFilterAttributes(IDictionary) metoden .

IDesignerFilter.PostFilterEvents(IDictionary)

En beskrivning av den här medlemmen finns i PostFilterEvents(IDictionary) metoden .

IDesignerFilter.PostFilterProperties(IDictionary)

En beskrivning av den här medlemmen finns i PostFilterProperties(IDictionary) metoden .

IDesignerFilter.PreFilterAttributes(IDictionary)

En beskrivning av den här medlemmen finns i PreFilterAttributes(IDictionary) metoden .

IDesignerFilter.PreFilterEvents(IDictionary)

En beskrivning av den här medlemmen finns i PreFilterEvents(IDictionary) metoden .

IDesignerFilter.PreFilterProperties(IDictionary)

En beskrivning av den här medlemmen finns i PreFilterProperties(IDictionary) metoden .

ITreeDesigner.Children

En beskrivning av den här medlemmen finns i egenskapen Children .

ITreeDesigner.Parent

En beskrivning av den här medlemmen finns i egenskapen Parent .

Gäller för

Se även