Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Interfaz IDesignerHost

 

Publicado: octubre de 2016

Proporciona una interfaz para administrar los componentes y las transacciones del diseñador.

Espacio de nombres:   System.ComponentModel.Design
Ensamblado:  System (en System.dll)

[ComVisibleAttribute(true)]
public interface IDesignerHost : IServiceContainer, IServiceProvider

NombreDescripción
System_CAPS_pubpropertyContainer

Obtiene el contenedor para el host del diseñador.

System_CAPS_pubpropertyInTransaction

Obtiene un valor que indica si el host del diseñador está actualmente en una transacción.

System_CAPS_pubpropertyLoading

Obtiene un valor que indica si el host del diseñador está cargando el documento.

System_CAPS_pubpropertyRootComponent

Obtiene la instancia de la clase base que se utiliza como el componente raíz para el diseño actual.

System_CAPS_pubpropertyRootComponentClassName

Obtiene el nombre completo de la clase que se está diseñando.

System_CAPS_pubpropertyTransactionDescription

Obtiene la descripción de la transacción actual.

NombreDescripción
System_CAPS_pubmethodActivate()

Activa el diseñador hospedado en este host.

System_CAPS_pubmethodAddService(Type, Object)

Agrega el servicio especificado al contenedor de servicios.(Heredado de IServiceContainer).

System_CAPS_pubmethodAddService(Type, Object, Boolean)

Agrega el servicio especificado al contenedor de servicios y, opcionalmente, promueve el servicio para los contenedores de servicio principales.(Heredado de IServiceContainer).

System_CAPS_pubmethodAddService(Type, ServiceCreatorCallback)

Agrega el servicio especificado al contenedor de servicios.(Heredado de IServiceContainer).

System_CAPS_pubmethodAddService(Type, ServiceCreatorCallback, Boolean)

Agrega el servicio especificado al contenedor de servicios y, opcionalmente, promueve el servicio para los contenedores de servicio principales.(Heredado de IServiceContainer).

System_CAPS_pubmethodCreateComponent(Type)

Crea un componente del tipo especificado y lo agrega al documento de diseño.

System_CAPS_pubmethodCreateComponent(Type, String)

Crea un componente del tipo especificado y el nombre y lo agrega al documento de diseño.

System_CAPS_pubmethodCreateTransaction()

Crea un DesignerTransaction que puede encapsular secuencias de eventos para mejorar el rendimiento y Habilitar deshacer y rehacer la funcionalidad de soporte técnico.

System_CAPS_pubmethodCreateTransaction(String)

Crea un DesignerTransaction que puede encapsular secuencias de eventos para mejorar el rendimiento y Habilitar deshacer y rehacer la funcionalidad de soporte técnico, utilizando la descripción de transacción especificada.

System_CAPS_pubmethodDestroyComponent(IComponent)

Destruye el componente especificado y lo quita del contenedor del diseñador.

System_CAPS_pubmethodGetDesigner(IComponent)

Obtiene la instancia del diseñador que contiene el componente especificado.

System_CAPS_pubmethodGetService(Type)

Obtiene el objeto de servicio del tipo especificado.(Heredado de IServiceProvider).

System_CAPS_pubmethodGetType(String)

Obtiene una instancia del nombre de tipo completo especificado.

System_CAPS_pubmethodRemoveService(Type)

Quita el tipo de servicio especificado del contenedor de servicios.(Heredado de IServiceContainer).

System_CAPS_pubmethodRemoveService(Type, Boolean)

Quita el tipo de servicio especificado del contenedor de servicios y, opcionalmente, promueve el servicio para los contenedores de servicio principales.(Heredado de IServiceContainer).

NombreDescripción
System_CAPS_pubeventActivated

Se produce cuando se activa el diseñador.

System_CAPS_pubeventDeactivated

Se produce cuando se desactiva el diseñador.

System_CAPS_pubeventLoadComplete

Se produce cuando el diseñador termina de cargar su documento.

System_CAPS_pubeventTransactionClosed

Agrega un controlador de eventos para el TransactionClosed eventos.

System_CAPS_pubeventTransactionClosing

Agrega un controlador de eventos para el TransactionClosing eventos.

System_CAPS_pubeventTransactionOpened

Agrega un controlador de eventos para el TransactionOpened eventos.

System_CAPS_pubeventTransactionOpening

Agrega un controlador de eventos para el TransactionOpening eventos.

IDesignerHost es una interfaz que funciona con la arquitectura de diseñador de formularios de .NET Framework para proporcionar compatibilidad con transacciones del diseñador y administración de componentes.

.NET Framework no proporciona una implementación de esta interfaz. La interfaz se implementa mediante las herramientas de desarrollo que admiten diseñadores.

Notas para llamadores:

Para obtener una implementación de IDesignerHost desde un entorno de desarrollo, llame al método GetService mientras el componente esté activo en modo de diseño, pasando el tipo de IDesignerHost a solicitud de un IDesignerHost interfaz de servicio.

IDesignerHost proporciona a los siguientes miembros relacionados con el estado del diseñador:

  • El Loading propiedad indica si se está cargando un diseñador o documento.

  • El Activated evento se produce cuando se activa un diseñador antes de la presentación.

  • El Deactivated evento se produce cuando se desactiva un diseñador.

  • El LoadComplete evento se produce después de cargar un documento.

  • El Activate método activa el diseñador.

IDesignerHost proporciona a los siguientes miembros relacionados con la administración de componentes:

  • El Container propiedad indica el contenedor para el host del diseñador.

  • El RootComponent propiedad indica la clase base para el componente raíz.

  • El RootComponentClassName propiedad indica el nombre de la clase del componente raíz.

  • El CreateComponent método crea el tipo de componente especificado.

  • El DestroyComponent método destruye el componente especificado.

  • El GetDesigner método obtiene el diseñador asociado a un componente especificado.

  • El GetType método obtiene una instancia del tipo con el nombre especificado.

IDesignerHost proporciona a los siguientes miembros relacionados con la administración de transacciones:

El ejemplo de código siguiente muestra cómo obtener el IDesignerHost de un diseñador o componente basado en la interfaz del servicio.

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

El ejemplo de código siguiente se muestra cómo utilizar el IDesignerHost interfaz a la lista de componentes de proyecto.

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()
        {
            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 );
        }	
    }
}

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: