Sdílet prostřednictvím


ComponentDesigner Třída

Definice

Rozšiřuje chování režimu návrhu komponenty.

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
Dědičnost
ComponentDesigner
Odvozené
Implementuje

Příklady

Následující příklad kódu poskytuje ukázkovou ComponentDesigner implementaci a ukázkovou komponentu přidruženou k návrháři. Návrhář implementuje přepsání Initialize metody, která volá základní Initialize metodu, přepsání DoDefaultAction metody, která zobrazí MessageBox , když je komponenta poklikána, a přepsání přístupového Verbs objektu vlastnosti, který poskytuje vlastní DesignerVerb příkaz nabídky do místní nabídky pro komponentu.

#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

Poznámky

Základní ComponentDesigner návrhář třída poskytuje jednoduchý návrhář, který může rozšířit chování přidružené komponenty v režimu návrhu.

ComponentDesigner poskytuje prázdnou IDesignerFilter implementaci rozhraní, jejíž metody lze přepsat pro úpravu atributů, vlastností a událostí přidružené komponenty v době návrhu.

Návrháře můžete přidružit k typu pomocí .DesignerAttribute Přehled přizpůsobení chování při návrhu najdete v tématu Rozšíření podpory Design-Time.

Třída ComponentDesigner implementuje speciální chování pro popisovače vlastností zděděných komponent. Interní typ pojmenovaný InheritedPropertyDescriptor je používán výchozí ComponentDesigner implementací pro vlastnosti, které jsou zděděné ze základní třídy. Existují dva případy, kdy jsou tyto popisovače vlastností přidány.

  1. Do samotného kořenového objektu IDesignerHost.RootComponent , který je vrácen vlastností, protože dědíte z její základní třídy.

  2. Pole nalezená v základní třídě kořenového objektu. Do návrháře se přidají veřejná a chráněná pole ze základní třídy, aby je uživatel mohl manipulovat.

Třída InheritedPropertyDescriptor upravuje výchozí hodnotu vlastnosti, aby výchozí hodnota je aktuální hodnota v instanci objektu. Důvodem je to, že vlastnost je zděděna z jiné instance. Návrhář definuje resetování hodnoty vlastnosti jako nastavení na hodnotu, která byla nastavena zděděnou třídou. Tato hodnota se může lišit od výchozí hodnoty uložené v metadatech.

Konstruktory

Name Description
ComponentDesigner()

Inicializuje novou instanci ComponentDesigner třídy.

Vlastnosti

Name Description
ActionLists

Získá seznam akcí v době návrhu podporovaný komponentou přidruženou k návrháři.

AssociatedComponents

Získá kolekci komponent přidružených ke komponentě spravované návrhářem.

Component

Získá komponentu, která tento návrhář navrhuje.

InheritanceAttribute

Získá atribut, který označuje typ dědičnosti přidružené komponenty.

Inherited

Získá hodnotu určující, zda je tato komponenta zděděna.

ParentComponent

Získá nadřazenou komponentu pro tohoto návrháře.

SetTextualDefaultProperty

Rozšiřuje chování režimu návrhu komponenty.

ShadowProperties

Získá kolekci hodnot vlastností, které přepíší uživatelská nastavení.

Verbs

Získá příkazy v době návrhu podporované komponentou, která je přidružena k návrháři.

Metody

Name Description
Dispose()

Uvolní všechny prostředky používané nástrojem ComponentDesigner.

Dispose(Boolean)

Uvolní nespravované prostředky používané ComponentDesigner a volitelně uvolní spravované prostředky.

DoDefaultAction()

Vytvoří podpis metody v souboru zdrojového kódu pro výchozí událost komponenty a přejde kurzor uživatele na toto místo.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
Finalize()

Pokusí se uvolnit prostředky voláním Dispose(false) před uvolněním objektu uvolňováním paměti.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetService(Type)

Pokusí se načíst zadaný typ služby z webu režimu návrhu komponenty návrháře.

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
Initialize(IComponent)

Připraví návrháře, aby zobrazil, upravil a navrhl zadanou komponentu.

InitializeExistingComponent(IDictionary)

Znovu inicializuje existující komponentu.

InitializeNewComponent(IDictionary)

Inicializuje nově vytvořenou komponentu.

InitializeNonDefault()
Zastaralé.
Zastaralé.

Inicializuje nastavení pro importovanou komponentu, která je již inicializována na jiná nastavení než výchozí hodnoty.

InvokeGetInheritanceAttribute(ComponentDesigner)

InheritanceAttribute Získá zadanou ComponentDesigner.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
OnSetComponentDefaults()
Zastaralé.
Zastaralé.

Nastaví výchozí vlastnosti komponenty.

PostFilterAttributes(IDictionary)

Umožňuje návrháři změnit nebo odebrat položky ze sady atributů, které zveřejňuje prostřednictvím objektu TypeDescriptor.

PostFilterEvents(IDictionary)

Umožňuje návrháři změnit nebo odebrat položky ze sady událostí, které zveřejňuje prostřednictvím objektu TypeDescriptor.

PostFilterProperties(IDictionary)

Umožňuje návrháři změnit nebo odebrat položky ze sady vlastností, které zveřejňuje prostřednictvím objektu TypeDescriptor.

PreFilterAttributes(IDictionary)

Umožňuje návrháři přidat do sady atributů, které zveřejňuje prostřednictvím TypeDescriptor.

PreFilterEvents(IDictionary)

Umožňuje návrháři přidat do sady událostí, které zveřejňuje prostřednictvím .TypeDescriptor

PreFilterProperties(IDictionary)

Umožňuje návrháři přidat do sady vlastností, které zveřejňuje prostřednictvím .TypeDescriptor

RaiseComponentChanged(MemberDescriptor, Object, Object)

Upozorní tuto komponentu IComponentChangeService , že byla změněna.

RaiseComponentChanging(MemberDescriptor)

Upozorní tuto komponentu IComponentChangeService , že se chystáte změnit.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
IDesignerFilter.PostFilterAttributes(IDictionary)

Popis tohoto člena najdete v PostFilterAttributes(IDictionary) metodě.

IDesignerFilter.PostFilterEvents(IDictionary)

Popis tohoto člena najdete v PostFilterEvents(IDictionary) metodě.

IDesignerFilter.PostFilterProperties(IDictionary)

Popis tohoto člena najdete v PostFilterProperties(IDictionary) metodě.

IDesignerFilter.PreFilterAttributes(IDictionary)

Popis tohoto člena najdete v PreFilterAttributes(IDictionary) metodě.

IDesignerFilter.PreFilterEvents(IDictionary)

Popis tohoto člena najdete v PreFilterEvents(IDictionary) metodě.

IDesignerFilter.PreFilterProperties(IDictionary)

Popis tohoto člena najdete v PreFilterProperties(IDictionary) metodě.

ITreeDesigner.Children

Popis tohoto člena naleznete ve Children vlastnosti.

ITreeDesigner.Parent

Popis tohoto člena naleznete ve Parent vlastnosti.

Platí pro

Viz také