Прочитать на английском

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


IDesigner Интерфейс

Определение

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

public interface IDesigner : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public interface IDesigner : IDisposable
Производный
Атрибуты
Реализации

Примеры

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

using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace IDesignerExample
{	
    // A DesignerAttribute associates the example IDesigner with an example control.
    [DesignerAttribute(typeof(ExampleIDesigner))]
    public class TestControl : System.Windows.Forms.UserControl
    {				
        public TestControl()
        {	
        }
    }

    public class ExampleIDesigner : System.ComponentModel.Design.IDesigner
    {
        // Local reference to the designer's component.
        private IComponent component; 
        // Public accessor to the designer's component.
        public System.ComponentModel.IComponent Component
        {
            get
            {
                return component;
            }            
        }

        public ExampleIDesigner()
        {            
        }

        public void Initialize(System.ComponentModel.IComponent component)
        {
            // This method is called after a designer for a component is created,
            // and stores a reference to the designer's component.
            this.component = component;
        }        
        
        // This method peforms the 'default' action for the designer. The default action 
        // for a basic IDesigner implementation is invoked when the designer's component 
        // is double-clicked. By default, a component associated with a basic IDesigner 
        // implementation is displayed in the design-mode component tray.
        public void DoDefaultAction()
        {
            // Shows a message box indicating that the default action for the designer was invoked.
            MessageBox.Show("The DoDefaultAction method of an IDesigner implementation was invoked.", "Information");
        }

        // Returns a collection of designer verb menu items to show in the 
        // shortcut menu for the designer's component.
        public System.ComponentModel.Design.DesignerVerbCollection Verbs
        {
            get
            {
                DesignerVerbCollection verbs = new DesignerVerbCollection();
                DesignerVerb dv1 = new DesignerVerb("Display Component Name", new EventHandler(this.ShowComponentName));
                verbs.Add( dv1 );
                return verbs;
            }
        }

        // Event handler for displaying a message box showing the designer's component's name.
        private void ShowComponentName(object sender, EventArgs e)
        {
            if( this.Component != null )
                MessageBox.Show( this.Component.Site.Name, "Designer Component's Name" );
        }

        // Provides an opportunity to release resources before object destruction.
        public void Dispose()
        {        
        }
    }
}

Комментарии

Интерфейс IDesigner предоставляет интерфейс, с помощью которого можно реализовать базовые службы для конструктора. Конструктор может изменять поведение компонента во время разработки и предоставлять собственные службы и поведение. Конструктор активен только во время разработки и должен быть связан с типом компонента с помощью DesignerAttribute , чтобы загружаться при создании компонента связанного типа во время разработки.

Интерфейс IDesigner предоставляет методы и свойства, которые можно реализовать для обеспечения пользовательского поведения во время разработки.

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

Конструктор может предоставлять команды меню в контекстном меню, которое отображается, когда пользователь щелкает правой кнопкой мыши компонент или элемент управления в среде разработки. Вы можете реализовать Verbs свойство , чтобы определить метод доступа get, который возвращает DesignerVerbCollection объект , содержащий DesignerVerb объекты для создания команд меню.

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

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

Чтобы реализовать конструктор для элемента управления, который может быть размещен в форме, можно наследовать от ControlDesigner класса . Элементы управления, от которых не ControlDesigner связан конструктор, отображаются в области компонентов. ComponentDesigner Классы и ControlDesigner реализуют IDesigner интерфейс и предоставляют дополнительную поддержку во время разработки, которая может быть нужна авторам конструкторов. Дополнительные сведения см. в справочной документации по этим классам.

Общие сведения о создании компонентов проектирования см. в разделе Расширение поддержки Design-Time.

Свойства

Component

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

Verbs

Получает коллекцию команд времени разработки, поддерживаемых конструктором.

Методы

Dispose()

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

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

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

Initialize(IComponent)

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

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

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