Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

IDesignerHost (Interfaz)

Proporciona una interfaz para administrar transacciones y componentes de diseñador.

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

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

El tipo IDesignerHost expone los siguientes miembros.

  NombreDescripción
Propiedad públicaContainerObtiene el contenedor para el host del diseñador.
Propiedad públicaInTransactionObtiene un valor que indica si el host del diseñador está ejecutando actualmente una transacción.
Propiedad públicaLoadingObtiene un valor que indica si el host del diseñador está cargando el documento.
Propiedad públicaRootComponentObtiene la instancia de la clase base que se utiliza como componente raíz para el diseño actual.
Propiedad públicaRootComponentClassNameObtiene el nombre completo de la clase que se está diseñando.
Propiedad públicaTransactionDescriptionObtiene una descripción de la transacción actual.
Arriba

  NombreDescripción
Método públicoActivateActiva el diseñador hospedado en este host.
Método públicoAddService(Type, ServiceCreatorCallback)Agrega el servicio especificado al contenedor de servicios. (Se hereda de IServiceContainer).
Método públicoAddService(Type, Object)Agrega el servicio especificado al contenedor de servicios. (Se hereda de IServiceContainer).
Método públicoAddService(Type, ServiceCreatorCallback, Boolean)Agrega el servicio especificado al contenedor de servicios y, opcionalmente, promueve el servicio para los contenedores de servicios principales. (Se hereda de IServiceContainer).
Método públicoAddService(Type, Object, Boolean)Agrega el servicio especificado al contenedor de servicios y, opcionalmente, promueve el servicio para los contenedores de servicios principales. (Se hereda de IServiceContainer).
Método públicoCreateComponent(Type)Crea un componente del tipo especificado y lo agrega al documento de diseño.
Método públicoCreateComponent(Type, String)Crea un componente del tipo y nombre especificados y lo agrega al documento de diseño.
Método públicoCreateTransaction()Crea una DesignerTransaction que puede encapsular secuencias de eventos para mejorar el rendimiento y habilitar funcionalidad para las operaciones de deshacer y rehacer.
Método públicoCreateTransaction(String)Crea una DesignerTransaction que puede encapsular secuencias de eventos para mejorar el rendimiento y habilitar funcionalidad para las operaciones de deshacer y rehacer, utilizando la descripción de transacción especificada.
Método públicoDestroyComponentDestruye el componente especificado y lo quita del contenedor del diseñador.
Método públicoGetDesignerObtiene la instancia del diseñador que contiene el componente especificado.
Método públicoGetServiceObtiene el objeto de servicio del tipo especificado. (Se hereda de IServiceProvider).
Método públicoGetTypeObtiene una instancia del nombre de tipo completo especificado.
Método públicoRemoveService(Type)Quita el tipo de servicio especificado del contenedor de servicios. (Se hereda de IServiceContainer).
Método públicoRemoveService(Type, Boolean)Quita el tipo de servicio especificado del contenedor de servicios y, opcionalmente, promueve el servicio para los contenedores de servicios principales. (Se hereda de IServiceContainer).
Arriba

  NombreDescripción
Evento públicoActivatedSe produce cuando se activa el diseñador.
Evento públicoDeactivatedSe produce cuando se desactiva el diseñador.
Evento públicoLoadCompleteSe produce cuando el diseñador termina de cargar su documento.
Evento públicoTransactionClosedAgrega un controlador de eventos para el evento TransactionClosed.
Evento públicoTransactionClosingAgrega un controlador de eventos para el evento TransactionClosing.
Evento públicoTransactionOpenedAgrega un controlador de eventos para el evento TransactionOpened.
Evento públicoTransactionOpeningAgrega un controlador de eventos para el evento TransactionOpening.
Arriba

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

.NET Framework no proporciona una implementación de esta interfaz. Las herramientas de desarrollo que admiten diseñadores son las encargadas de implementar esta interfaz.

Notas para los llamadores

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

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

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

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

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

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

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

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

  • La propiedad Container indica cuál es el contenedor del host del diseñador.

  • La propiedad RootComponent indica la clase base del componente raíz.

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

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

  • El método DestroyComponent destruye el componente especificado.

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

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

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

En el siguiente código de ejemplo se muestra cómo obtener la interfaz de servicio IDesignerHost a partir de un diseñador o componente basado en un sitio.


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


En el siguiente código de ejemplo se muestra cómo utilizar la interfaz IDesignerHost para mostrar la lista de componentes del 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

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft