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 для свойств, унаследованных от базового класса. Существует два случая, в которых добавляются дескрипторы этих свойств.
К самому корневому объекту, возвращаемому свойством IDesignerHost.RootComponent , так как он наследуется от базового класса.
Поля, найденные в базовом классе корневого объекта. Открытые и защищенные поля из базового класса добавляются в конструктор, чтобы их можно было управлять пользователем.
Класс InheritedPropertyDescriptor изменяет значение по умолчанию свойства, чтобы значение по умолчанию было текущим значением при создании экземпляра объекта. Это связано с тем, что свойство наследуется от другого экземпляра. Конструктор определяет сброс значения свойства в качестве параметра значения, заданного унаследованным классом. Это значение может отличаться от значения по умолчанию, хранящегося в метаданных.
Конструкторы
| Имя | Описание |
|---|---|
| ComponentDesigner() |
Инициализирует новый экземпляр класса ComponentDesigner. |
Свойства
| Имя | Описание |
|---|---|
| ActionLists |
Возвращает списки действий во время разработки, поддерживаемые компонентом, связанным с конструктором. |
| AssociatedComponents |
Возвращает коллекцию компонентов, связанных с компонентом, управляемым конструктором. |
| Component |
Возвращает компонент, который проектируется этим конструктором. |
| InheritanceAttribute |
Возвращает атрибут, указывающий тип наследования связанного компонента. |
| Inherited |
Возвращает значение, указывающее, наследуется ли этот компонент. |
| ParentComponent |
Возвращает родительский компонент для этого конструктора. |
| SetTextualDefaultProperty |
Расширяет поведение режима конструктора компонента. |
| ShadowProperties |
Возвращает коллекцию значений свойств, которые переопределяют параметры пользователя. |
| Verbs |
Возвращает команды времени разработки, поддерживаемые компонентом, связанным с конструктором. |
Методы
| Имя | Описание |
|---|---|
| Dispose() |
Освобождает все ресурсы, используемые параметром ComponentDesigner. |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые ComponentDesigner и при необходимости освобождает управляемые ресурсы. |
| DoDefaultAction() |
Создает сигнатуру метода в файле исходного кода для события по умолчанию компонента и перемещает курсор пользователя в это расположение. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Finalize() |
Пытается освободить ресурсы путем вызова |
| 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 . |