Поделиться через


ComponentDesigner Класс

Определение

Расширяет поведение режима конструктора компонента.

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
Наследование
ComponentDesigner
Производный
Реализации

Примеры

В следующем примере кода представлен пример ComponentDesigner реализации и пример компонента, связанного с конструктором. Конструктор реализует переопределение Initialize метода, вызывающего базовый Initialize метод, переопределение DoDefaultAction метода, отображающего MessageBox при двойном щелчке компонента, и переопределение Verbs метода доступа к свойству, которое предоставляет настраиваемую DesignerVerb команду меню контекстного меню для компонента.

#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 класс конструктора предоставляет простой конструктор, который может расширить поведение связанного компонента в режиме разработки.

ComponentDesigner предоставляет пустую IDesignerFilter реализацию интерфейса, методы которой можно переопределить для настройки атрибутов, свойств и событий связанного компонента во время разработки.

Конструктор можно связать с типом с помощью .DesignerAttribute Общие сведения о настройке поведения во время разработки см. в разделе "Расширение Design-Time поддержка".

Класс ComponentDesigner реализует специальное поведение для дескрипторов свойств унаследованных компонентов. Именованный внутренний тип InheritedPropertyDescriptor используется реализацией по умолчанию ComponentDesigner для свойств, унаследованных от базового класса. Существует два случая, в которых добавляются дескрипторы этих свойств.

  1. К самому корневому объекту, возвращаемому свойством IDesignerHost.RootComponent , так как он наследуется от базового класса.

  2. Поля, найденные в базовом классе корневого объекта. Открытые и защищенные поля из базового класса добавляются в конструктор, чтобы их можно было управлять пользователем.

Класс InheritedPropertyDescriptor изменяет значение по умолчанию свойства, чтобы значение по умолчанию было текущим значением при создании экземпляра объекта. Это связано с тем, что свойство наследуется от другого экземпляра. Конструктор определяет сброс значения свойства в качестве параметра значения, заданного унаследованным классом. Это значение может отличаться от значения по умолчанию, хранящегося в метаданных.

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

Имя Описание
ComponentDesigner()

Инициализирует новый экземпляр класса ComponentDesigner.

Свойства

Имя Описание
ActionLists

Возвращает списки действий во время разработки, поддерживаемые компонентом, связанным с конструктором.

AssociatedComponents

Возвращает коллекцию компонентов, связанных с компонентом, управляемым конструктором.

Component

Возвращает компонент, который проектируется этим конструктором.

InheritanceAttribute

Возвращает атрибут, указывающий тип наследования связанного компонента.

Inherited

Возвращает значение, указывающее, наследуется ли этот компонент.

ParentComponent

Возвращает родительский компонент для этого конструктора.

SetTextualDefaultProperty

Расширяет поведение режима конструктора компонента.

ShadowProperties

Возвращает коллекцию значений свойств, которые переопределяют параметры пользователя.

Verbs

Возвращает команды времени разработки, поддерживаемые компонентом, связанным с конструктором.

Методы

Имя Описание
Dispose()

Освобождает все ресурсы, используемые параметром ComponentDesigner.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые ComponentDesigner и при необходимости освобождает управляемые ресурсы.

DoDefaultAction()

Создает сигнатуру метода в файле исходного кода для события по умолчанию компонента и перемещает курсор пользователя в это расположение.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

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

Пытается освободить ресурсы путем вызова Dispose(false) перед восстановлением объекта сборкой мусора.

GetHashCode()

Служит хэш-функцией по умолчанию.

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

Пытается получить указанный тип службы из сайта режима конструктора компонента конструктора.

GetType()

Возвращает Type текущего экземпляра.

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

Подготавливает конструктор к просмотру, редактированию и проектированию указанного компонента.

InitializeExistingComponent(IDictionary)

Повторно инициализирует существующий компонент.

InitializeNewComponent(IDictionary)

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

InitializeNonDefault()
Устаревшие..
Устаревшие..

Инициализирует параметры импортированного компонента, который уже инициализирован для параметров, отличных от значений по умолчанию.

InvokeGetInheritanceAttribute(ComponentDesigner)

InheritanceAttribute Возвращает указанный ComponentDesignerобъект.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnSetComponentDefaults()
Устаревшие..
Устаревшие..

Задает свойства по умолчанию для компонента.

PostFilterAttributes(IDictionary)

Позволяет конструктору изменять или удалять элементы из набора атрибутов, предоставляемых через объект TypeDescriptor.

PostFilterEvents(IDictionary)

Позволяет конструктору изменять или удалять элементы из набора событий, предоставляемых через TypeDescriptorобъект.

PostFilterProperties(IDictionary)

Позволяет конструктору изменять или удалять элементы из набора свойств, предоставляемых через объект TypeDescriptor.

PreFilterAttributes(IDictionary)

Позволяет конструктору добавлять в набор атрибутов, предоставляемых с помощью TypeDescriptor.

PreFilterEvents(IDictionary)

Позволяет конструктору добавлять в набор событий, предоставляемых им с помощью TypeDescriptor.

PreFilterProperties(IDictionary)

Позволяет конструктору добавлять в набор свойств, предоставляемых через объект TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Уведомляет об IComponentChangeService изменении этого компонента.

RaiseComponentChanging(MemberDescriptor)

Уведомляет IComponentChangeService об изменении этого компонента.

ToString()

Возвращает строку, представляющую текущий объект.

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

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

Имя Описание
IDesignerFilter.PostFilterAttributes(IDictionary)

Описание этого элемента см. в описании PostFilterAttributes(IDictionary) метода.

IDesignerFilter.PostFilterEvents(IDictionary)

Описание этого элемента см. в описании PostFilterEvents(IDictionary) метода.

IDesignerFilter.PostFilterProperties(IDictionary)

Описание этого элемента см. в описании PostFilterProperties(IDictionary) метода.

IDesignerFilter.PreFilterAttributes(IDictionary)

Описание этого элемента см. в описании PreFilterAttributes(IDictionary) метода.

IDesignerFilter.PreFilterEvents(IDictionary)

Описание этого элемента см. в описании PreFilterEvents(IDictionary) метода.

IDesignerFilter.PreFilterProperties(IDictionary)

Описание этого элемента см. в описании PreFilterProperties(IDictionary) метода.

ITreeDesigner.Children

Описание этого элемента см. в свойстве Children .

ITreeDesigner.Parent

Описание этого элемента см. в свойстве Parent .

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

См. также раздел