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

IDesigner (Interfaz)

Proporciona el marco de trabajo básico para compilar un diseñador personalizado.

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

[ComVisibleAttribute(true)]
public interface IDesigner : IDisposable

El tipo IDesigner expone los siguientes miembros.

  NombreDescripción
Propiedad públicaComponentObtiene el componente base que está diseñando el diseñador.
Propiedad públicaVerbsObtiene una colección de los verbos en tiempo de diseño admitidos por el diseñador.
Arriba

  NombreDescripción
Método públicoDisposeRealiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. (Se hereda de IDisposable).
Método públicoDoDefaultActionRealiza la acción predeterminada para el diseñador.
Método públicoInitializeInicializa el diseñador con el componente especificado.
Arriba

La interfaz IDesigner proporciona una interfaz mediante la cual se pueden implementar los servicios básicos de un diseñador. Un diseñador puede modificar el comportamiento de un componente en tiempo de diseño y puede proporcionar sus propios servicios y comportamientos. Un diseñador sólo está activo en tiempo de diseño y se debe asociar a un tipo de componente mediante DesignerAttribute para que se pueda cargar al crear un componente del tipo asociado en tiempo de diseño.

La interfaz IDesigner dispone de los métodos y propiedades que se pueden implementar para proporcionar un comportamiento personalizado en tiempo de diseño.

Se implementa el método Initialize de un diseñador para realizar las acciones al crear un componente. Puede resultar útil si un componente debe tener una configuración especial en tiempo de diseño o si su configuración debe cambiar en función de unas condiciones que el diseñador puede determinar.

Un diseñador puede proporcionar los comandos de menú del menú contextual que se muestra cuando el usuario hace clic con el botón secundario del mouse en un componente o control del entorno en tiempo de diseño. La propiedad Verbs se puede implementar para definir un descriptor de acceso get que devuelve una DesignerVerbCollection que contiene los objetos DesignerVerb que se utilizan para generar los comandos de menú.

El diseñador de un componente que aparece en la bandeja de componentes puede realizar una acción predeterminada al hacer doble clic en el componente. Se implementa el método DoDefaultAction para especificar el comportamiento que tendrá el componente al hacer doble clic en él.

Un diseñador también puede utilizar los servicios disponibles en tiempo de diseño para realizar diferentes tareas, por ejemplo, supervisar los componentes del actual entorno en tiempo de diseño y sus propiedades, leer y establecer los valores de las propiedades de los componentes, administrar el cuadro de herramientas, administrar los componentes seleccionados o mostrar la interfaz de usuario que se puede utilizar para configurar los valores o aplicar otros procesos.

Para implementar un diseñador para un control que se puede ubicar en un formulario, se puede heredar de la clase ControlDesigner. Los controles cuyo diseñador asociado no se derive de ControlDesigner se muestran en la bandeja de componentes. Las clases ComponentDesigner y ControlDesigner implementan la interfaz IDesigner y ofrecen más soporte en tiempo de diseño que puede resultar útil para los creadores de diseñadores. Para obtener más información, vea la documentación de referencia de estas clases.

Para obtener información general sobre la creación de componentes de diseño, vea Ampliar compatibilidad en tiempo de diseño.

En este ejemplo se muestra una implementación de IDesigner que almacena una referencia local a su componente, realiza una acción predeterminada cuando se hace doble clic en el componente y proporciona un comando de menú de verbo de diseñador.


using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace IDesignerExample
{	
    // A DesignerAttribute associates the example IDesigner with an example control.
    [DesignerAttribute(typeof(ExampleIDesigner))]
    public class TestControl : System.Windows.Forms.UserControl
    {				
        public TestControl()
        {	
        }
    }

    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] 
    public class ExampleIDesigner : System.ComponentModel.Design.IDesigner
    {
        // Local reference to the designer's component.
        private IComponent component; 
        // Public accessor to the designer's component.
        public System.ComponentModel.IComponent Component
        {
            get
            {
                return component;
            }            
        }

        public ExampleIDesigner()
        {            
        }

        public void Initialize(System.ComponentModel.IComponent component)
        {
            // This method is called after a designer for a component is created,
            // and stores a reference to the designer's component.
            this.component = component;
        }        

        // This method peforms the 'default' action for the designer. The default action 
        // for a basic IDesigner implementation is invoked when the designer's component 
        // is double-clicked. By default, a component associated with a basic IDesigner 
        // implementation is displayed in the design-mode component tray.
        public void DoDefaultAction()
        {
            // Shows a message box indicating that the default action for the designer was invoked.
            MessageBox.Show("The DoDefaultAction method of an IDesigner implementation was invoked.", "Information");
        }

        // Returns a collection of designer verb menu items to show in the 
        // shortcut menu for the designer's component.
        public System.ComponentModel.Design.DesignerVerbCollection Verbs
        {
            get
            {
                DesignerVerbCollection verbs = new DesignerVerbCollection();
                DesignerVerb dv1 = new DesignerVerb("Display Component Name", new EventHandler(this.ShowComponentName));
                verbs.Add( dv1 );
                return verbs;
            }
        }

        // Event handler for displaying a message box showing the designer's component's name.
        private void ShowComponentName(object sender, EventArgs e)
        {
            if( this.Component != null )
                MessageBox.Show( this.Component.Site.Name, "Designer Component's Name" );
        }

        // Provides an opportunity to release resources before object destruction.
        public void Dispose()
        {        
        }
    }
}


.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