Assembly : System (dans system.dll)
Syntaxe<ComVisibleAttribute(True)> _ Public Interface IDesignerHost Inherits IServiceContainer, IServiceProvider
Dim instance As IDesignerHost
[ComVisibleAttribute(true)] public interface IDesignerHost : IServiceContainer, IServiceProvider
[ComVisibleAttribute(true)] public interface class IDesignerHost : IServiceContainer, IServiceProvider
/** @attribute ComVisibleAttribute(true) */ public interface IDesignerHost extends IServiceContainer, IServiceProvider
ComVisibleAttribute(true) public interface IDesignerHost extends IServiceContainer, IServiceProvider
NotesIDesignerHost est une interface qui utilise l'architecture du concepteur de formulaires du .NET Framework pour fournir la prise en charge de la gestion des transactions et composants du concepteur.
Le .NET Framework ne fournit pas une implémentation de cette interface. L'interface est implémentée par les outils de développement qui prennent en charge les concepteurs.
Remarques à l'attention des appelants Pour obtenir une implémentation de IDesignerHost à partir d'un environnement de design, appelez GetService lorsque votre composant est actif en mode design, en passant le type de IDesignerHost pour demander une interface du service IDesignerHost. IDesignerHost fournit les membres suivants liés à l'état du concepteur :-
La propriété Loading indique si un concepteur ou un document est en cours de chargement.
-
L'événement Activated se produit lors de l'activation d'un concepteur avant l'affichage.
-
L'événement Deactivated se produit lors de la désactivation d'un concepteur.
-
L'événement LoadComplete se produit après le chargement d'un document.
-
La méthode Activate active le concepteur.
-
La propriété Container indique le conteneur de l'hôte de concepteur.
-
La propriété RootComponent indique la classe de base du composant racine.
-
La propriété RootComponentClassName indique le nom de la classe du composant racine.
-
La méthode CreateComponent crée le type de composant spécifié.
-
La méthode DestroyComponent détruit le composant spécifié.
-
La méthode GetDesigner obtient le concepteur associé à un composant spécifié.
-
La méthode GetType obtient une instance du type portant le nom spécifié.
-
La propriété InTransaction indique si le concepteur se trouve dans une transaction.
-
La propriété TransactionDescription indique la description de la transaction en cours.
-
L'événement TransactionClosed se produit lorsqu'une transaction est terminée.
-
L'événement TransactionClosing se produit lorsqu'une transaction est sur le point d'être terminée.
-
L'événement TransactionOpened se produit lorsqu'une transaction a commencé.
-
L'événement TransactionOpening se produit lorsqu'une transaction est sur le point de commencer.
-
La méthode CreateTransaction crée et retourne une nouvelle transaction.
ExempleL'exemple de code suivant montre comment obtenir l'interface du service IDesignerHost à partir d'un concepteur ou d'un composant installé.
' 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)
// 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() 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.get_Component().get_Site(). GetService(IDesignerHost.class.ToType());
L'exemple de code suivant montre comment utiliser l'interface IDesignerHost pour répertorier les composants d'un projet.
Imports System 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 'New 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 'New 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() Dim 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 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
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. [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] 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() { 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 ); } } }
#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(){} };
Plates-formesWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ