IDesigner インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
カスタム デザイナーを構築するための基本フレームワークを提供します。
public interface class IDesigner : IDisposable
public interface IDesigner : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public interface IDesigner : IDisposable
type IDesigner = interface
interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type IDesigner = interface
interface IDisposable
Public Interface IDesigner
Implements IDisposable
- 派生
- 属性
- 実装
例
この例では、コンポーネントへのローカル参照を格納し、コンポーネントがダブルクリックされたときに既定のアクションを実行し、デザイナー動詞メニュー コマンドを提供する実装を示 IDesigner します。
#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()
{
}
}
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 、デザイナーの基本的なサービスを実装するためのインターフェイスが用意されています。 デザイナーは、デザイン時にコンポーネントの動作を変更でき、独自のサービスと動作を提供できます。 デザイナーはデザイン時にのみアクティブであり、関連付けられた型のコンポーネントがデザイン時に作成されるときに読み込まれるには、 を使用して DesignerAttribute コンポーネントの種類に関連付ける必要があります。
インターフェイスには IDesigner 、デザイン時にカスタム動作を提供するために実装できるメソッドとプロパティが用意されています。
コンポーネントの作成時に Initialize アクションを実行するデザイナーの メソッドを実装します。 これは、デザイン時にコンポーネントに特別な構成が必要な場合や、デザイナーが判断できる条件に応じて構成を変更する必要がある場合に便利です。
デザイナーは、ユーザーがデザイン時環境でコンポーネントまたはコントロールを右クリックしたときに表示されるショートカット メニューにメニュー コマンドを提供できます。 プロパティをVerbs実装して、メニュー コマンドを生成するための オブジェクトを含む DesignerVerb をDesignerVerbCollection返す get アクセサーを定義できます。
コンポーネント トレイに表示されるコンポーネントのデザイナーは、コンポーネントがダブルクリックされたときに既定のアクションを実行できます。 コンポーネントが DoDefaultAction ダブルクリックされたときに実行する動作を指定する メソッドを実装します。
デザイナーは、使用可能なデザイン時サービスを使用して、コンポーネントとそのプロパティの現在のデザイン時環境の調査、コンポーネントのプロパティの値の読み取りと設定、ツールボックスの管理、選択したコンポーネントの管理、値の構成や処理の適用に使用できるユーザー インターフェイスの表示など、さまざまなタスクを実行することもできます。
フォームに配置できるコントロールのデザイナーを実装するには、 クラスから ControlDesigner 継承できます。 関連付けられたデザイナーが から ControlDesigner 派生していないコントロールは、コンポーネント トレイに表示されます。 クラスと ControlDesigner クラスは ComponentDesigner インターフェイスをIDesigner実装し、デザイナーの作成者に使用できる追加のデザイン時サポートを提供します。 詳細については、これらのクラスのリファレンス ドキュメントを参照してください。
設計コンポーネントの作成の概要については、「 Design-Time サポートの拡張」を参照してください。
プロパティ
Component |
デザイナーがデザインする基本コンポーネントを取得します。 |
Verbs |
デザイナーでサポートされているデザイン時動詞のコレクションを取得します。 |
メソッド
Dispose() |
アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。 (継承元 IDisposable) |
DoDefaultAction() |
デザイナーの既定のアクションを実行します。 |
Initialize(IComponent) |
コンポーネントを指定して、デザイナーを初期化します。 |
適用対象
こちらもご覧ください
.NET