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 ref class ComponentDesigner : IDisposable, System::ComponentModel::Design::IComponentInitializer, System::ComponentModel::Design::IDesigner, 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
public class ComponentDesigner : IDisposable, System.ComponentModel.Design.IComponentInitializer, System.ComponentModel.Design.IDesigner, 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
Public Class ComponentDesigner
Implements IComponentInitializer, IDesigner, 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. |