IDesignerHost 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
디자이너 트랜잭션과 구성 요소를 관리하기 위한 인터페이스를 제공합니다.
public interface class IDesignerHost : IServiceProvider, System::ComponentModel::Design::IServiceContainer
public interface class IDesignerHost : System::ComponentModel::Design::IServiceContainer
public interface IDesignerHost : IServiceProvider, System.ComponentModel.Design.IServiceContainer
[System.Runtime.InteropServices.ComVisible(true)]
public interface IDesignerHost : IServiceProvider, System.ComponentModel.Design.IServiceContainer
public interface IDesignerHost : System.ComponentModel.Design.IServiceContainer
type IDesignerHost = interface
interface IServiceContainer
interface IServiceProvider
[<System.Runtime.InteropServices.ComVisible(true)>]
type IDesignerHost = interface
interface IServiceContainer
interface IServiceProvider
Public Interface IDesignerHost
Implements IServiceContainer, IServiceProvider
Public Interface IDesignerHost
Implements IServiceContainer
- 파생
- 특성
- 구현
예제
다음 예제 코드를 가져오는 방법을 보여 줍니다는 IDesignerHost 디자이너 또는 배치 된 구성 요소에서 서비스 인터페이스입니다.
// Requests an IDesignerHost service from the design time environment using Component.Site.GetService()
IDesignerHost^ dh = static_cast<IDesignerHost^>(this->Component->Site->GetService( IDesignerHost::typeid ));
// Requests an IDesignerHost service from the design time environment using Component.Site.GetService()
IDesignerHost dh = (IDesignerHost) this.Component.Site.GetService(typeof(IDesignerHost));
' Requests an IDesignerHost service from the design time environment using Component.Site.GetService()
Dim host As IDesignerHost = CType(Me.Component.Site.GetService(GetType(IDesignerHost)), IDesignerHost)
다음 예제 코드를 사용 하는 방법을 보여 줍니다는 IDesignerHost 목록 프로젝트 구성 요소에 대 한 인터페이스입니다.
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
#using <System.dll>
using namespace System;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System::Security::Permissions;
// Provides a form containing a listbox that can display
// a list of project components.
public ref class DesignerHostListForm: public System::Windows::Forms::Form
{
public:
System::Windows::Forms::ListBox^ listBox1;
private:
System::Windows::Forms::Button^ ok_button;
public:
DesignerHostListForm()
{
this->Name = "DesignerHostListForm";
this->Text = "List of design-time project components";
this->SuspendLayout();
this->listBox1 = gcnew System::Windows::Forms::ListBox;
this->listBox1->Location = System::Drawing::Point( 8, 8 );
this->listBox1->Name = "listBox1";
this->listBox1->Size = System::Drawing::Size( 385, 238 );
this->listBox1->TabIndex = 0;
this->listBox1->Anchor = static_cast<AnchorStyles>(((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom) | System::Windows::Forms::AnchorStyles::Left) | System::Windows::Forms::AnchorStyles::Right);
this->ok_button = gcnew System::Windows::Forms::Button;
this->ok_button->DialogResult = System::Windows::Forms::DialogResult::OK;
this->ok_button->Location = System::Drawing::Point( 232, 256 );
this->ok_button->Name = "ok_button";
this->ok_button->TabIndex = 1;
this->ok_button->Text = "OK";
this->ok_button->Anchor = static_cast<AnchorStyles>(System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Right);
this->ClientSize = System::Drawing::Size( 400, 285 );
array<System::Windows::Forms::Control^>^temp2 = {this->ok_button,this->listBox1};
this->Controls->AddRange( temp2 );
this->ResumeLayout( false );
}
public:
~DesignerHostListForm()
{
}
};
// You can double-click the component of an IDesignerHostExampleDesigner
// to show a form containing a listbox that lists the name and type
// of each component or control in the current design-time project.
public ref class IDesignerHostExampleDesigner: public IDesigner
{
private:
System::ComponentModel::IComponent^ component;
public:
IDesignerHostExampleDesigner(){}
virtual void DoDefaultAction()
{
ListComponents();
}
virtual void Initialize( System::ComponentModel::IComponent^ component )
{
this->component = component;
MessageBox::Show( "Double-click the IDesignerHostExample component to view a list of project components." );
}
private:
// Displays a list of components in the current design
// document when the default action of the designer is invoked.
void ListComponents()
{
DesignerHostListForm^ listform = gcnew DesignerHostListForm;
// Obtain an IDesignerHost service from the design environment.
IDesignerHost^ host = dynamic_cast<IDesignerHost^>(this->component->Site->GetService( IDesignerHost::typeid ));
// Get the project components container (control containment depends on Controls collections)
IContainer^ container = host->Container;
// Add each component's type name and name to the list box.
System::Collections::IEnumerator^ myEnum = container->Components->GetEnumerator();
while ( myEnum->MoveNext() )
{
IComponent^ component = safe_cast<IComponent^>(myEnum->Current);
listform->listBox1->Items->Add( String::Concat( component->GetType()->Name, " : ", component->Site->Name ) );
}
listform->ShowDialog();
}
public:
property System::ComponentModel::IComponent^ Component
{
virtual System::ComponentModel::IComponent^ get()
{
return this->component;
}
}
property System::ComponentModel::Design::DesignerVerbCollection^ Verbs
{
[PermissionSetAttribute(SecurityAction::Demand, Name="FullTrust")]
virtual System::ComponentModel::Design::DesignerVerbCollection^ get()
{
DesignerVerbCollection^ dvc = gcnew DesignerVerbCollection;
dvc->Add( gcnew DesignerVerb( "List Components",gcnew EventHandler( this, &IDesignerHostExampleDesigner::ListHandler ) ) );
return dvc;
}
}
private:
void ListHandler( Object^ /*sender*/, EventArgs^ /*e*/ )
{
ListComponents();
}
public:
~IDesignerHostExampleDesigner(){}
};
// IDesignerHostExampleComponent is a component associated
// with the IDesignerHostExampleDesigner that demonstrates
// acquisition and use of the IDesignerHost service
// to list project components.
[DesignerAttribute(IDesignerHostExampleDesigner::typeid)]
public ref class IDesignerHostExampleComponent: public System::ComponentModel::Component
{
public:
IDesignerHostExampleComponent(){}
public:
~IDesignerHostExampleComponent(){}
};
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Windows.Forms;
namespace IDesignerHostExample
{
// IDesignerHostExampleComponent is a component associated
// with the IDesignerHostExampleDesigner that demonstrates
// acquisition and use of the IDesignerHost service
// to list project components.
[DesignerAttribute(typeof(IDesignerHostExampleDesigner))]
public class IDesignerHostExampleComponent : System.ComponentModel.Component
{
public IDesignerHostExampleComponent()
{}
protected override void Dispose( bool disposing )
{
base.Dispose( disposing );
}
}
// You can double-click the component of an IDesignerHostExampleDesigner
// to show a form containing a listbox that lists the name and type
// of each component or control in the current design-time project.
public class IDesignerHostExampleDesigner : IDesigner
{
private System.ComponentModel.IComponent component;
public IDesignerHostExampleDesigner()
{}
public void DoDefaultAction()
{
ListComponents();
}
public void Initialize(System.ComponentModel.IComponent component)
{
this.component = component;
MessageBox.Show("Double-click the IDesignerHostExample component to view a list of project components.");
}
// Displays a list of components in the current design
// document when the default action of the designer is invoked.
private void ListComponents()
{
using (DesignerHostListForm listform = new DesignerHostListForm())
{
// Obtain an IDesignerHost service from the design environment.
IDesignerHost host = (IDesignerHost)this.component.Site.GetService(typeof(IDesignerHost));
// Get the project components container (control containment depends on Controls collections)
IContainer container = host.Container;
// Add each component's type name and name to the list box.
foreach (IComponent component in container.Components)
{
listform.listBox1.Items.Add(component.GetType().Name + " : " + component.Site.Name);
}
// Display the form.
listform.ShowDialog();
}
}
public System.ComponentModel.IComponent Component
{
get
{
return this.component;
}
}
public System.ComponentModel.Design.DesignerVerbCollection Verbs
{
get
{
DesignerVerbCollection dvc = new DesignerVerbCollection();
dvc.Add( new DesignerVerb("List Components", new EventHandler(ListHandler)) );
return dvc;
}
}
private void ListHandler(object sender, EventArgs e)
{
ListComponents();
}
public void Dispose() { }
}
// Provides a form containing a listbox that can display
// a list of project components.
public class DesignerHostListForm : System.Windows.Forms.Form
{
public System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button ok_button;
public DesignerHostListForm()
{
this.Name = "DesignerHostListForm";
this.Text = "List of design-time project components";
this.SuspendLayout();
this.listBox1 = new System.Windows.Forms.ListBox();
this.listBox1.Location = new System.Drawing.Point(8, 8);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(385, 238);
this.listBox1.TabIndex = 0;
this.listBox1.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right);
this.ok_button = new System.Windows.Forms.Button();
this.ok_button.DialogResult = System.Windows.Forms.DialogResult.OK;
this.ok_button.Location = new System.Drawing.Point(232, 256);
this.ok_button.Name = "ok_button";
this.ok_button.TabIndex = 1;
this.ok_button.Text = "OK";
this.ok_button.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right);
this.ClientSize = new System.Drawing.Size(400, 285);
this.Controls.AddRange(new System.Windows.Forms.Control[] { this.ok_button, this.listBox1 });
this.ResumeLayout(false);
}
protected override void Dispose( bool disposing )
{
base.Dispose( disposing );
}
}
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Windows.Forms
Namespace IDesignerHostExample
' IDesignerHostExampleComponent is a component associated
' with the IDesignerHostExampleDesigner that demonstrates
' acquisition and use of the IDesignerHost service
' to list project components.
<DesignerAttribute(GetType(IDesignerHostExampleDesigner))> _
Public Class IDesignerHostExampleComponent
Inherits System.ComponentModel.Component
Public Sub New()
End Sub
Protected Overloads Sub Dispose(ByVal disposing As Boolean)
MyBase.Dispose(disposing)
End Sub
End Class
' You can double-click the component of a IDesignerHostExampleDesigner
' to show a form containing a listbox that lists the name and type
' of each component or control in the current design-time project.
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Public Class IDesignerHostExampleDesigner
Implements IDesigner
Private component_ As System.ComponentModel.IComponent
Public Sub New()
End Sub
Public Sub DoDefaultAction() Implements IDesigner.DoDefaultAction
ListComponents()
End Sub
Public Sub Initialize(ByVal component As System.ComponentModel.IComponent) Implements IDesigner.Initialize
Me.component_ = component
MessageBox.Show("Double-click the IDesignerHostExample component to view a list of project components.")
End Sub
' Displays a list of components in the current design
' document when the default action of the designer is invoked.
Private Sub ListComponents()
Using listform As New DesignerHostListForm()
' Obtain an IDesignerHost service from the design environment.
Dim host As IDesignerHost = CType(Me.Component.Site.GetService(GetType(IDesignerHost)), IDesignerHost)
' Get the project components container (control containment depends on Controls collections)
Dim container As IContainer = host.Container
' Add each component's type name and name to the list box.
Dim comp As Component
For Each comp In container.Components
listform.listBox1.Items.Add((comp.GetType().Name + " : " + Component.Site.Name))
Next comp
' Display the form.
listform.ShowDialog()
End Using
End Sub
Public ReadOnly Property Component() As System.ComponentModel.IComponent Implements IDesigner.Component
Get
Return component_
End Get
End Property
Public ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection Implements IDesigner.Verbs
Get
Dim dvc As New DesignerVerbCollection()
dvc.Add(New DesignerVerb("List Components", New EventHandler(AddressOf ListHandler)))
Return dvc
End Get
End Property
Private Sub ListHandler(ByVal sender As Object, ByVal e As EventArgs)
ListComponents()
End Sub
Public Sub Dispose() Implements IDisposable.Dispose
End Sub
End Class
_
' Provides a form containing a list box that can display
' a list of project components.
Public Class DesignerHostListForm
Inherits System.Windows.Forms.Form
Public listBox1 As System.Windows.Forms.ListBox
Private ok_button As System.Windows.Forms.Button
Public Sub New()
Me.Name = "DesignerHostListForm"
Me.Text = "List of design-time project components"
Me.SuspendLayout()
Me.listBox1 = New System.Windows.Forms.ListBox()
Me.listBox1.Location = New System.Drawing.Point(8, 8)
Me.listBox1.Name = "listBox1"
Me.listBox1.Size = New System.Drawing.Size(385, 238)
Me.listBox1.TabIndex = 0
Me.listBox1.Anchor = (((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right)
Me.ok_button = New System.Windows.Forms.Button()
Me.ok_button.DialogResult = System.Windows.Forms.DialogResult.OK
Me.ok_button.Location = New System.Drawing.Point(232, 256)
Me.ok_button.Name = "ok_button"
Me.ok_button.TabIndex = 1
Me.ok_button.Text = "OK"
Me.ok_button.Anchor = (System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right)
Me.ClientSize = New System.Drawing.Size(400, 285)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.ok_button, Me.listBox1})
Me.ResumeLayout(False)
End Sub
Protected Overloads Sub Dispose(ByVal disposing As Boolean)
MyBase.Dispose(disposing)
End Sub
End Class
End Namespace
설명
IDesignerHost 디자이너 트랜잭션 및 구성 요소 관리를 위한 지원을 제공 하 여.NET Framework forms 디자이너 아키텍처를 사용 하 여 작동 하는 인터페이스가입니다.
.NET Framework에는이 인터페이스의 구현을 제공 하지 않습니다. 인터페이스는 디자이너를 지 원하는 개발 도구에서 구현 됩니다.
호출자 참고
구현의 가져오려고 IDesignerHost 개발 환경에서 호출 GetService(Type) 구성 요소가 디자인 모드에서 활성 상태인 동안의 형식을 전달 IDesignerHost 요청에는 IDesignerHost 서비스 인터페이스입니다.
IDesignerHost 디자이너 상태와 관련 된 다음 멤버를 제공 합니다.
속성은 Loading 디자이너 또는 문서가 로드되고 있는지 여부를 나타냅니다.
이 Activated 이벤트는 디자이너가 표시되기 전에 활성화될 때 발생합니다.
이 Deactivated 이벤트는 디자이너가 비활성화될 때 발생합니다.
이 LoadComplete 이벤트는 문서를 로드한 후에 발생합니다.
메서드는 Activate() 디자이너를 활성화합니다.
IDesignerHost 구성 요소 관리와 관련 된 다음 멤버를 제공 합니다.
속성은 Container 디자이너 호스트의 컨테이너를 나타냅니다.
속성은 RootComponent 루트 구성 요소의 기본 클래스를 나타냅니다.
속성은 RootComponentClassName 루트 구성 요소의 클래스 이름을 나타냅니다.
메서드는 CreateComponent(Type) 지정된 유형의 구성 요소를 만듭니다.
메서드는 DestroyComponent(IComponent) 지정된 구성 요소를 삭제합니다.
메서드는 GetDesigner(IComponent) 지정된 구성 요소와 연결된 디자이너를 가져옵니다.
메서드는 GetType(String) 지정된 이름을 가진 형식의 instance 가져옵니다.
IDesignerHost 트랜잭션 관리와 관련 된 다음 멤버를 제공 합니다.
속성은 InTransaction 디자이너가 트랜잭션에 있는지 여부를 나타냅니다.
속성은 TransactionDescription 현재 트랜잭션 설명을 나타냅니다.
이 TransactionClosed 이벤트는 트랜잭션이 완료되었을 때 발생합니다.
이 TransactionClosing 이벤트는 트랜잭션이 완료될 때 발생합니다.
이 TransactionOpened 이벤트는 트랜잭션이 시작될 때 발생합니다.
이 TransactionOpening 이벤트는 트랜잭션이 시작되려고 할 때 발생합니다.
메서드는 CreateTransaction() 새 트랜잭션을 만들고 반환합니다.
속성
Container |
이 디자이너 호스트에 대한 컨테이너를 가져옵니다. |
InTransaction |
디자이너 호스트가 현재 트랜잭션에 있는지 여부를 나타내는 값을 가져옵니다. |
Loading |
디자이너 호스트가 현재 문서를 로드 중인지 여부를 나타내는 값을 가져옵니다. |
RootComponent |
현재 디자인에 대한 루트 구성 요소로 사용된 기본 클래스의 인스턴스를 가져옵니다. |
RootComponentClassName |
디자인하고 있는 클래스의 정규화된 이름을 가져옵니다. |
TransactionDescription |
현재 트랜잭션에 대한 설명을 가져옵니다. |
메서드
Activate() |
이 호스트가 호스팅 중인 디자이너를 활성화합니다. |
AddService(Type, Object) |
지정한 서비스를 서비스 컨테이너에 추가합니다. (다음에서 상속됨 IServiceContainer) |
AddService(Type, Object, Boolean) |
지정한 서비스를 서비스 컨테이너에 추가하고 필요에 따라 서비스를 부모 서비스 컨테이너로 승격시킵니다. (다음에서 상속됨 IServiceContainer) |
AddService(Type, ServiceCreatorCallback) |
지정한 서비스를 서비스 컨테이너에 추가합니다. (다음에서 상속됨 IServiceContainer) |
AddService(Type, ServiceCreatorCallback, Boolean) |
지정한 서비스를 서비스 컨테이너에 추가하고 필요에 따라 서비스를 부모 서비스 컨테이너로 승격시킵니다. (다음에서 상속됨 IServiceContainer) |
CreateComponent(Type) |
지정된 형식의 구성 요소를 만들어 디자인 문서에 추가합니다. |
CreateComponent(Type, String) |
지정된 형식과 이름의 구성 요소를 만들어 디자인 문서에 추가합니다. |
CreateTransaction() |
이벤트 순서를 캡슐화하여 성능을 개선하고 다시 실행 및 실행 취소 기능을 지원할 수 있는 DesignerTransaction을 만듭니다. |
CreateTransaction(String) |
지정된 트랜잭션 설명을 통해 이벤트 순서를 캡슐화하여 성능을 개선하고 다시 실행 및 실행 취소 기능을 지원할 수 있는 DesignerTransaction을 만듭니다. |
DestroyComponent(IComponent) |
지정된 구성 요소를 소멸시키고 디자이너 컨테이너에서 이를 제거합니다. |
GetDesigner(IComponent) |
지정된 구성 요소가 들어 있는 디자이너 인스턴스를 가져옵니다. |
GetService(Type) |
지정된 형식의 서비스 개체를 가져옵니다. (다음에서 상속됨 IServiceProvider) |
GetType(String) |
지정된, 정규화된 형식 이름의 인스턴스를 가져옵니다. |
RemoveService(Type) |
지정한 서비스 유형을 서비스 컨테이너에서 제거합니다. (다음에서 상속됨 IServiceContainer) |
RemoveService(Type, Boolean) |
지정한 서비스 유형을 서비스 컨테이너에서 제거하고 필요에 따라 서비스를 부모 서비스 컨테이너로 승격시킵니다. (다음에서 상속됨 IServiceContainer) |
이벤트
Activated |
이 디자이너가 활성화될 때 발생합니다. |
Deactivated |
이 디자이너가 비활성화될 때 발생합니다. |
LoadComplete |
이 디자이너에서 문서 로드를 완료할 때 발생합니다. |
TransactionClosed |
TransactionClosed 이벤트에 대한 이벤트 처리기를 추가합니다. |
TransactionClosing |
TransactionClosing 이벤트에 대한 이벤트 처리기를 추가합니다. |
TransactionOpened |
TransactionOpened 이벤트에 대한 이벤트 처리기를 추가합니다. |
TransactionOpening |
TransactionOpening 이벤트에 대한 이벤트 처리기를 추가합니다. |
확장 메서드
적용 대상
추가 정보
.NET