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. |