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
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. ComponentDesignerControlDesignerクラスの実装、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.

適用対象

こちらもご覧ください