IDesigner IDesigner IDesigner IDesigner Interface

정의

사용자 지정 디자이너를 빌드하기 위한 기본 프레임워크를 제공합니다.Provides the basic framework for building a custom designer.

public interface class IDesigner : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public interface IDesigner : IDisposable
type IDesigner = interface
    interface IDisposable
Public Interface IDesigner
Implements IDisposable
파생
특성
구현

예제

이 예제에서는 IDesigner 구현을 해당 구성 요소에 대 한 로컬 참조를 저장 하는 구성 요소를 두 번 및 디자이너 동사 메뉴 명령을 제공 하는 경우 기본 작업을 수행 합니다.This example demonstrates an IDesigner implementation that stores a local reference to its component, performs a default action when the component is double-clicked, and provides a designer verb menu command.

#using <System.Windows.Forms.dll>
#using <System.Data.dll>
#using <System.Drawing.dll>
#using <System.dll>

using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Drawing;
using namespace System::Data;
using namespace System::Windows::Forms;
using namespace System::Security::Permissions;

public ref class ExampleIDesigner: public System::ComponentModel::Design::IDesigner
{
private:

   // Local reference to the designer's component.
   IComponent^ component;

public:

   property System::ComponentModel::IComponent^ Component 
   {
      // Public accessor to the designer's component.
      virtual System::ComponentModel::IComponent^ get()
      {
         return component;
      }
   }
   ExampleIDesigner(){}

   virtual 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.
   virtual 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" );
   }

   property System::ComponentModel::Design::DesignerVerbCollection^ Verbs 
   {
      // Returns a collection of designer verb menu items to show in the 
      // shortcut menu for the designer's component.
      [PermissionSetAttribute(SecurityAction::Demand, Name="FullTrust")]
      virtual System::ComponentModel::Design::DesignerVerbCollection^ get()
      {
         DesignerVerbCollection^ verbs = gcnew DesignerVerbCollection;
         DesignerVerb^ dv1 = gcnew DesignerVerb( "Display Component Name",gcnew EventHandler( this, &ExampleIDesigner::ShowComponentName ) );
         verbs->Add( dv1 );
         return verbs;
      }
   }

private:

   // Event handler for displaying a message box showing the designer's component's name.
   void ShowComponentName( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      if ( this->Component != nullptr )
            MessageBox::Show( this->Component->Site->Name, "Designer Component's Name" );
   }

public:

   // Provides an opportunity to release resources before object destruction.
   ~ExampleIDesigner(){}

};

// A DesignerAttribute associates the example IDesigner with an example control.

[DesignerAttribute(ExampleIDesigner::typeid)]
public ref class TestControl: public System::Windows::Forms::UserControl
{
public:
   TestControl(){}

};
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()
        {	
        }
    }

    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] 
    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()
        {        
        }
    }
}
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Windows.Forms

' A DesignerAttribute associates the example IDesigner with an example control.
<DesignerAttribute(GetType(ExampleIDesigner))> _
Public Class TestControl
    Inherits System.Windows.Forms.UserControl

    Public Sub New()
    End Sub
End Class

<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Public Class ExampleIDesigner
    Implements System.ComponentModel.Design.IDesigner

    ' Local reference to the designer's component.
    Private _component As IComponent

    ' Public accessor to the designer's component.
    Public ReadOnly Property Component() As System.ComponentModel.IComponent Implements IDesigner.Component
        Get
            Return _component
        End Get
    End Property

    Public Sub New()
    End Sub

    Public Sub Initialize(ByVal component As System.ComponentModel.IComponent) Implements IDesigner.Initialize
        ' This method is called after a designer for a component is created,
        ' and stores a reference to the designer's component.
        Me._component = component
    End Sub

    ' 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 Sub DoDefaultAction() Implements IDesigner.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")
    End Sub

    ' Returns a collection of designer verb menu items to show in the 
    ' shortcut menu for the designer's component.
    Public ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection Implements IDesigner.Verbs
        Get
            Dim verbs_ As New DesignerVerbCollection()
            Dim dv1 As New DesignerVerb("Display Component Name", New EventHandler(AddressOf Me.ShowComponentName))
            verbs_.Add(dv1)
            Return verbs_
        End Get
    End Property

    ' Event handler for displaying a message box showing the designer's component's name.
    Private Sub ShowComponentName(ByVal sender As Object, ByVal e As EventArgs)
        If (Me.Component IsNot Nothing) Then
            MessageBox.Show(Me.Component.Site.Name, "Designer Component's Name")
        End If
    End Sub

    ' Provides an opportunity to release resources before object destruction.
    Public Sub Dispose() Implements IDisposable.Dispose
    End Sub

End Class

설명

IDesigner 인터페이스를 디자이너에 대 한 기본 서비스를 구현할 수 있는 인터페이스를 제공 합니다.The IDesigner interface provides an interface through which you can implement basic services for a designer. 디자이너에서 디자인 타임에 구성 요소의 동작을 수정할 수 및 자체 동작과 서비스를 제공할 수 있습니다.A designer can modify the behavior of a component at design time, and may provide its own services and behavior. 디자이너를 디자인 타임에만 활성화 되 고 사용 하 여 구성의 형식으로 연결 되어야 합니다는 DesignerAttribute 하려면 디자인 타임에 연결 된 형식의 구성 요소를 만들 때 로드할 수 있습니다.A designer is only active at design-time, and must be associated with a type of component using a DesignerAttribute in order to be loaded when a component of the associated type is created at design time.

IDesigner 인터페이스는 디자인 타임에 사용자 지정 동작을 제공 하기 위해 구현할 수 있는 속성과 메서드를 제공 합니다.The IDesigner interface provides methods and properties that you can implement in order to provide custom behavior at design time.

구현 된 Initialize 디자이너 구성 요소를 만들 때 작업을 수행 하는 메서드.Implement the Initialize method of a designer to perform actions when a component is created. 이 구성 요소는 디자인 타임에 특별 한 구성이 있어야 하거나 디자이너 결정할 수 있는 조건에 따라 해당 구성을 변경 해야 하는 경우에 유용할 수 있습니다.This can be useful if a component should have a special configuration at design-time, or if its configuration should change depending on conditions that the designer can determine.

디자이너 구성 요소 또는 디자인 타임 환경에서 컨트롤을 오른쪽 단추로 클릭할 때 표시 되는 바로 가기 메뉴에서 메뉴 명령을 제공할 수 있습니다.A designer can provide menu commands on the shortcut menu that is displayed when a user right-clicks a component or control in the design-time environment. 구현할 수 있습니다는 Verbs 반환 하는 get 접근자를 정의 하는 속성을 DesignerVerbCollection 포함 하는 DesignerVerb 메뉴 명령을 생성 하는 것에 대 한 개체입니다.You can implement the Verbs property to define a get accessor that returns a DesignerVerbCollection containing the DesignerVerb objects for generating menu commands.

구성 요소 트레이에 표시 되는 구성 요소에 대 한 디자이너 구성 요소를 두 번 클릭할 때 기본 작업을 수행할 수 있습니다.A designer for a component that appears in the component tray can perform a default action when the component is double-clicked. 구현 된 DoDefaultAction 구성 요소를 두 번 클릭할 때 수행할 동작을 지정 하는 방법입니다.Implement the DoDefaultAction method to specify the behavior to perform when the component is double-clicked.

디자이너가 관리는 다양 한 구성 요소 및 해당 속성에 대 한 현재 디자인 타임 환경 조사를 읽고 구성 요소 속성의 값을 설정 등의 작업을 수행 하려면 사용할 수 있는 디자인 타임 서비스를 이용할 수 있습니다는 도구 상자에서 선택한 구성 요소를 관리 하거나 값을 구성 하거나 추가 처리를 적용 하려면 사용할 수 있는 사용자 인터페이스를 표시 합니다.A designer can also use the available design-time services to perform a variety of tasks, including surveying the current design-time environment for components and their properties, reading and setting the values of properties of components, managing the toolbox, managing selected components, or displaying a user interface that can be used to configure values or to apply further processing.

폼에 위치할 수 있는 컨트롤에 대 한 디자이너를 구현 하려면에서 상속 된 ControlDesigner 클래스입니다.To implement a designer for a control that can be sited on a form, you can inherit from the ControlDesigner class. 컨트롤에서 연결된 된 디자이너가 파생 되지 않은 ControlDesigner 구성 요소 트레이에 표시 됩니다.Controls whose associated designer does not derive from ControlDesigner are displayed in the component tray. 합니다 ComponentDesigner 하 고 ControlDesigner 클래스 구현을 IDesigner 인터페이스 및 디자이너 작성자에 게 사용할 수 있는 추가 디자인 타임 지원을 제공 합니다.The ComponentDesigner and ControlDesigner classes implement the IDesigner interface and provide additional design-time support that may be of use to authors of designers. 자세한 내용은 이러한 클래스에 대 한 참조 설명서를 참조 하세요.For more information, see the reference documentation for these classes.

디자인 구성 요소 만들기의 개요를 참조 하세요 디자인 타임 지원 확장합니다.For an overview of creating design components, please see Extending Design-Time Support.

속성

Component Component Component Component

해당 디자이너가 디자인하고 있는 기본 구성 요소를 가져옵니다.Gets the base component that this designer is designing.

Verbs Verbs Verbs Verbs

디자이너가 지원하는 디자인 타임 동사의 컬렉션을 가져옵니다.Gets a collection of the design-time verbs supported by the designer.

메서드

Dispose() Dispose() Dispose() Dispose()

관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Inherited from IDisposable)
DoDefaultAction() DoDefaultAction() DoDefaultAction() DoDefaultAction()

이 디자이너에 대한 기본 작업을 수행합니다.Performs the default action for this designer.

Initialize(IComponent) Initialize(IComponent) Initialize(IComponent) Initialize(IComponent)

디자이너를 지정된 구성 요소로 초기화합니다.Initializes the designer with the specified component.

적용 대상

추가 정보