Afficher en anglais

Partage via


IDesignerHost Interface

Définition

Fournit une interface pour la gestion des transactions et composants du concepteur.

C#
public interface IDesignerHost : IServiceProvider, System.ComponentModel.Design.IServiceContainer
C#
[System.Runtime.InteropServices.ComVisible(true)]
public interface IDesignerHost : IServiceProvider, System.ComponentModel.Design.IServiceContainer
C#
public interface IDesignerHost : System.ComponentModel.Design.IServiceContainer
Dérivé
Attributs
Implémente

Exemples

L’exemple de code suivant montre comment obtenir l’interface IDesignerHost de service à partir d’un concepteur ou d’un composant site.

C#
// Requests an IDesignerHost service from the design time environment using Component.Site.GetService()
IDesignerHost dh = (IDesignerHost) this.Component.Site.GetService(typeof(IDesignerHost));

L’exemple de code suivant illustre l’utilisation de l’interface IDesignerHost pour répertorier les composants du projet.

C#
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 );
        }	
    }
}

Remarques

IDesignerHost est une interface qui fonctionne avec l’architecture du concepteur de formulaires .NET Framework pour assurer la prise en charge de la gestion des transactions et des composants du concepteur.

Le .NET Framework ne fournit pas d’implémentation de cette interface. L’interface est implémentée par les outils de développement qui prennent en charge les concepteurs.

Notes pour les appelants

Pour obtenir une implémentation de à partir d’un environnement de IDesignerHost développement, appelez GetService(Type) pendant que votre composant est actif en mode création, en passant le type de pour demander une IDesignerHost interface de IDesignerHost service.

IDesignerHost fournit les membres suivants liés à l’état du concepteur :

  • La Loading propriété indique si un concepteur ou un document est en cours de chargement.

  • L’événement Activated se produit lorsqu’un concepteur est activé avant l’affichage.

  • L’événement Deactivated se produit lorsqu’un concepteur est désactivé.

  • L’événement LoadComplete se produit après le chargement d’un document.

  • La Activate() méthode active le concepteur.

IDesignerHost fournit les membres suivants liés à la gestion des composants :

IDesignerHost fournit les membres suivants liés à la gestion des transactions :

  • La InTransaction propriété indique si le concepteur se trouve dans une transaction.

  • La TransactionDescription propriété indique la description de la transaction actuelle.

  • L’événement TransactionClosed se produit lorsqu’une transaction a été effectué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 CreateTransaction() méthode crée et retourne une nouvelle transaction.

Propriétés

Container

Obtient le conteneur de cet hôte de concepteur.

InTransaction

Obtient une valeur indiquant si l'hôte du concepteur se trouve actuellement dans une transaction.

Loading

Obtient une valeur indiquant si l'hôte du concepteur charge actuellement le document.

RootComponent

Obtient l'instance de la classe de base utilisée comme composant racine pour le design en cours.

RootComponentClassName

Obtient le nom qualifié complet de la classe dont le design est en cours.

TransactionDescription

Obtient la description de la transaction en cours.

Méthodes

Activate()

Active le concepteur hébergé par cet hôte.

AddService(Type, Object)

Ajoute le service spécifié au conteneur de service.

(Hérité de IServiceContainer)
AddService(Type, Object, Boolean)

Ajoute le service spécifié au conteneur de services et promeut éventuellement le service vers les conteneurs de services parents éventuels.

(Hérité de IServiceContainer)
AddService(Type, ServiceCreatorCallback)

Ajoute le service spécifié au conteneur de service.

(Hérité de IServiceContainer)
AddService(Type, ServiceCreatorCallback, Boolean)

Ajoute le service spécifié au conteneur de service, et promeut éventuellement le service au niveau de n'importe quel conteneur de service parent.

(Hérité de IServiceContainer)
CreateComponent(Type)

Crée un composant du type spécifié et l'ajoute au document de design.

CreateComponent(Type, String)

Crée un composant du type spécifié avec le nom donné et l'ajoute au document de design.

CreateTransaction()

Crée un DesignerTransaction pouvant encapsuler des séquences d'événements afin d'améliorer les performances et de permettre l'annulation, ainsi que le rétablissement des fonctionnalités de prise en charge.

CreateTransaction(String)

Crée un DesignerTransaction pouvant encapsuler des séquences d'événements afin d'améliorer les performances et de permettre l'annulation, ainsi que le rétablissement des fonctionnalités de prise en charge, à l'aide de la description de la transaction spécifiée.

DestroyComponent(IComponent)

Détruit le composant spécifié et le supprime du conteneur du concepteur.

GetDesigner(IComponent)

Obtient l'instance de concepteur qui contient le composant spécifié.

GetService(Type)

Obtient l'objet service du type spécifié.

(Hérité de IServiceProvider)
GetType(String)

Obtient une instance du nom de type qualifié complet spécifié.

RemoveService(Type)

Supprime le type de service spécifié du conteneur de service.

(Hérité de IServiceContainer)
RemoveService(Type, Boolean)

Supprime le type de service spécifié du conteneur de service, et promeut éventuellement le service au niveau de n'importe quel conteneur de service parent.

(Hérité de IServiceContainer)

Événements

Activated

Se produit lorsque ce concepteur est activé.

Deactivated

Se produit lorsque ce concepteur est désactivé.

LoadComplete

Se produit lorsque ce concepteur a terminé le chargement de son document.

TransactionClosed

Ajoute un gestionnaire d'événements pour l'événement TransactionClosed.

TransactionClosing

Ajoute un gestionnaire d'événements pour l'événement TransactionClosing.

TransactionOpened

Ajoute un gestionnaire d'événements pour l'événement TransactionOpened.

TransactionOpening

Ajoute un gestionnaire d'événements pour l'événement TransactionOpening.

Méthodes d’extension

GetKeyedService<T>(IServiceProvider, Object)

Obtient un service de type T à partir de .IServiceProvider

GetKeyedServices(IServiceProvider, Type, Object)

Obtient une énumération des services de type serviceType à partir de IServiceProvider.

GetKeyedServices<T>(IServiceProvider, Object)

Obtient une énumération des services de type T à partir de IServiceProvider.

GetRequiredKeyedService(IServiceProvider, Type, Object)

Obtient un service de type serviceType à partir de .IServiceProvider

GetRequiredKeyedService<T>(IServiceProvider, Object)

Obtient un service de type T à partir de .IServiceProvider

CreateAsyncScope(IServiceProvider)

Crée un AsyncServiceScope qui peut être utilisé pour résoudre des services délimités.

CreateScope(IServiceProvider)

Crée un IServiceScope qui peut être utilisé pour résoudre des services délimités.

GetRequiredService(IServiceProvider, Type)

Obtient le service de type serviceType à partir du IServiceProvider.

GetRequiredService<T>(IServiceProvider)

Obtient le service de type T à partir du IServiceProvider.

GetService<T>(IServiceProvider)

Obtient le service de type T à partir du IServiceProvider.

GetServices(IServiceProvider, Type)

Obtient une énumération des services de type serviceType à partir du IServiceProvider.

GetServices<T>(IServiceProvider)

Obtient une énumération des services de type T à partir du IServiceProvider.

GetFakeLogCollector(IServiceProvider)

Obtient l’objet qui collecte les enregistrements de journal envoyés au faux journal.

GetFakeRedactionCollector(IServiceProvider)

Obtient le faux collecteur de redacteur instance à partir du conteneur d’injection de dépendances.

S’applique à

Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Voir aussi