ComponentDesigner Класс

Определение

Расширяет поведение компонента в режиме разработки.Extends the design mode behavior of a component.

public ref class ComponentDesigner : IDisposable, System::ComponentModel::Design::IComponentInitializer, System::ComponentModel::Design::IDesignerFilter, System::ComponentModel::Design::ITreeDesigner
public class ComponentDesigner : IDisposable, System.ComponentModel.Design.IComponentInitializer, System.ComponentModel.Design.IDesignerFilter, System.ComponentModel.Design.ITreeDesigner
type ComponentDesigner = class
    interface ITreeDesigner
    interface IDesigner
    interface IDisposable
    interface IDesignerFilter
    interface IComponentInitializer
Public Class ComponentDesigner
Implements IComponentInitializer, IDesignerFilter, IDisposable, ITreeDesigner
Наследование
ComponentDesigner
Производный
Реализации

Примеры

В следующем примере кода приведен пример реализации ComponentDesigner и пример компонента, связанного с конструктором.The following code example provides an example ComponentDesigner implementation and an example component associated with the designer. Конструктор реализует переопределение метода Initialize, который вызывает базовый метод Initialize, переопределение метода DoDefaultAction, который отображает MessageBox при двойном щелчке компонента, а также переопределение метода доступа Verbs, который предоставляет команду настраиваемого меню DesignerVerb контекстному меню компонента.The designer implements an override of the Initialize method that calls the base Initialize method, an override of the DoDefaultAction method that displays a MessageBox when the component is double-clicked, and an override of the Verbs property accessor that supplies a custom DesignerVerb menu command to the shortcut menu for the component.

#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

Комментарии

Класс ComponentDesigner базового конструктора предоставляет простой конструктор, который может расширить поведение связанного компонента в режиме конструктора.The ComponentDesigner base designer class provides a simple designer that can extend the behavior of an associated component in design mode.

ComponentDesigner предоставляет пустую реализацию интерфейса IDesignerFilter, методы которой можно переопределить для настройки атрибутов, свойств и событий связанного компонента во время разработки.ComponentDesigner provides an empty IDesignerFilter interface implementation, whose methods can be overridden to adjust the attributes, properties and events of the associated component at design time.

Конструктор можно связать с типом с помощью DesignerAttribute.You can associate a designer with a type using a DesignerAttribute. Общие сведения о настройке поведения во время разработки см. в разделе расширение поддержки времениразработки.For an overview of customizing design-time behavior, see Extending Design-Time Support.

Класс ComponentDesigner реализует особое поведение дескрипторов свойств наследуемых компонентов.The ComponentDesigner class implements a special behavior for the property descriptors of inherited components. Внутренний тип с именем InheritedPropertyDescriptor используется реализацией ComponentDesigner по умолчанию для использования в свойствах, унаследованных от базового класса.An internal type named InheritedPropertyDescriptor is used by the default ComponentDesigner implementation to stand in for properties that are inherited from a base class. Существуют два случая, в которых добавляются эти дескрипторы свойств.There are two cases in which these property descriptors are added.

  1. На сам корневой объект, который возвращается свойством IDesignerHost.RootComponent, так как вы наследуете от его базового класса.To the root object itself, which is returned by the IDesignerHost.RootComponent property, because you are inheriting from its base class.

  2. К полям, найденным в базовом классе корневого объекта.To fields found in the base class of the root object. Открытые и защищенные поля базового класса добавляются в конструктор, чтобы ими можно было управлять с помощью пользователя.Public and protected fields from the base class are added to the designer so that they can be manipulated by the user.

Класс InheritedPropertyDescriptor изменяет значение свойства по умолчанию, чтобы значение по умолчанию было текущим значением при создании экземпляра объекта.The InheritedPropertyDescriptor class modifies the default value of a property, so that the default value is the current value at object instantiation. Это обусловлено тем, что свойство наследуется от другого экземпляра.This is because the property is inherited from another instance. Конструктор определяет сброс значения свойства как присвоив ему значение, заданное унаследованным классом.The designer defines resetting the property value as setting it to the value that was set by the inherited class. Это значение может отличаться от значения по умолчанию, хранящегося в метаданных.This value may differ from the default value stored in metadata.

Конструкторы

ComponentDesigner()

Инициализация нового экземпляра класса ComponentDesigner.Initializes a new instance of the ComponentDesigner class.

Свойства

ActionLists

Возвращает списки действий времени разработки, поддерживаемые компонентом, сопоставленным конструктору.Gets the design-time action lists supported by the component associated with the designer.

AssociatedComponents

Получает коллекцию компонентов, сопоставленных компоненту, который управляется конструктором.Gets the collection of components associated with the component managed by the designer.

Component

Возвращает основной компонент, создаваемый данным конструктором.Gets the component this designer is designing.

InheritanceAttribute

Возвращает атрибут, обозначающий тип наследования связанного компонента.Gets an attribute that indicates the type of inheritance of the associated component.

Inherited

Возвращает значение, определяющее, наследуется ли этот компонент или нет.Gets a value indicating whether this component is inherited.

ParentComponent

Возвращает родительский компонент этого конструктора.Gets the parent component for this designer.

ShadowProperties

Возвращает коллекцию значений свойств, переопределяющих параметры пользователя.Gets a collection of property values that override user settings.

Verbs

Возвращает команды в режиме конструктора, поддерживаемые компонентом, связанным с конструктором.Gets the design-time verbs supported by the component that is associated with the designer.

Методы

Dispose()

Освобождает все ресурсы, занятые ComponentDesigner.Releases all resources used by the ComponentDesigner.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые ComponentDesigner, и дополнительно освобождает управляемые ресурсы.Releases the unmanaged resources used by the ComponentDesigner and optionally releases the managed resources.

DoDefaultAction()

Создает в файле с исходным кодом подпись метода для события по умолчанию для компонента и устанавливает курсор в позицию, где была создана эта подпись.Creates a method signature in the source code file for the default event on the component and navigates the user's cursor to that location.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
Finalize()

Пытается освободить ресурсы путем вызова метода Dispose(false) перед уничтожением объекта во время сборки мусора.Attempts to free resources by calling Dispose(false) before the object is reclaimed by garbage collection.

GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetService(Type)

Пытается извлечь службу заданного типа с узла режима разработки компонента конструктора.Attempts to retrieve the specified type of service from the design mode site of the designer's component.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
Initialize(IComponent)

Подготавливает конструктор к просмотру, редактированию или разработке заданного компонента.Prepares the designer to view, edit, and design the specified component.

InitializeExistingComponent(IDictionary)

Выполняет повторную инициализацию существующего компонента.Reinitializes an existing component.

InitializeNewComponent(IDictionary)

Инициализирует только что созданный компонент.Initializes a newly created component.

InitializeNonDefault()

Инициализирует параметры импортированного компонента, параметры которого уже были инициализированы с использованием параметров, отличных от заданных по умолчанию.Initializes the settings for an imported component that is already initialized to settings other than the defaults.

InvokeGetInheritanceAttribute(ComponentDesigner)

Возвращает атрибут InheritanceAttribute заданного объекта ComponentDesigner.Gets the InheritanceAttribute of the specified ComponentDesigner.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
OnSetComponentDefaults()

Задает для компонента свойства по умолчанию.Sets the default properties for the component.

PostFilterAttributes(IDictionary)

Позволяет конструктору изменять или удалять элементы из набора атрибутов, предоставленных через класс TypeDescriptor.Allows a designer to change or remove items from the set of attributes that it exposes through a TypeDescriptor.

PostFilterEvents(IDictionary)

Позволяет конструктору изменять или удалять элементы из набора событий, предоставленных через класс TypeDescriptor.Allows a designer to change or remove items from the set of events that it exposes through a TypeDescriptor.

PostFilterProperties(IDictionary)

Позволяет конструктору изменять или удалять элементы из набора свойств, предоставленных с использованием класса TypeDescriptor.Allows a designer to change or remove items from the set of properties that it exposes through a TypeDescriptor.

PreFilterAttributes(IDictionary)

Позволяет конструктору добавлять элементы к набору атрибутов, предоставленному с использованием класса TypeDescriptor.Allows a designer to add to the set of attributes that it exposes through a TypeDescriptor.

PreFilterEvents(IDictionary)

Позволяет конструктору добавлять элементы к набору событий, предоставленных с использованием класса TypeDescriptor.Allows a designer to add to the set of events that it exposes through a TypeDescriptor.

PreFilterProperties(IDictionary)

Позволяет конструктору добавлять элементы к набору свойств, предоставленному с использованием класса TypeDescriptor.Allows a designer to add to the set of properties that it exposes through a TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Уведомляет службу IComponentChangeService о том, что данный компонент был изменен.Notifies the IComponentChangeService that this component has been changed.

RaiseComponentChanging(MemberDescriptor)

Уведомляет службу IComponentChangeService о том, что компонент будет изменен.Notifies the IComponentChangeService that this component is about to be changed.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Явные реализации интерфейса

IDesignerFilter.PostFilterAttributes(IDictionary)

Описание этого элемента содержится в методе PostFilterAttributes(IDictionary).For a description of this member, see the PostFilterAttributes(IDictionary) method.

IDesignerFilter.PostFilterEvents(IDictionary)

Описание этого элемента содержится в методе PostFilterEvents(IDictionary).For a description of this member, see the PostFilterEvents(IDictionary) method.

IDesignerFilter.PostFilterProperties(IDictionary)

Описание этого элемента содержится в методе PostFilterProperties(IDictionary).For a description of this member, see the PostFilterProperties(IDictionary) method.

IDesignerFilter.PreFilterAttributes(IDictionary)

Описание этого элемента содержится в методе PreFilterAttributes(IDictionary).For a description of this member, see the PreFilterAttributes(IDictionary) method.

IDesignerFilter.PreFilterEvents(IDictionary)

Описание этого элемента содержится в методе PreFilterEvents(IDictionary).For a description of this member, see the PreFilterEvents(IDictionary) method.

IDesignerFilter.PreFilterProperties(IDictionary)

Описание этого элемента содержится в методе PreFilterProperties(IDictionary).For a description of this member, see the PreFilterProperties(IDictionary) method.

ITreeDesigner.Children

Описание этого элемента см. в свойстве Children.For a description of this member, see the Children property.

ITreeDesigner.Parent

Описание этого элемента см. в свойстве Parent.For a description of this member, see the Parent property.

Применяется к

Дополнительно