Crear un control del cuadro de herramientas de Formularios Windows Forms

La plantilla de elemento Control del cuadro de herramientas de Windows Forms que se incluye en las Herramientas de extensibilidad de Visual Studio (VS SDK), le permite crear un control Cuadro de herramientas que se agrega automáticamente cuando se instala la extensión. En este tutorial se muestra cómo usar la plantilla para crear un control de contador simple que puede distribuir a otros usuarios.

Crear el control cuadro de herramientas

La plantilla Control del cuadro de herramientas de Windows Forms crea un control de usuario indefinido y proporciona toda la funcionalidad necesaria para agregar el control al cuadro de herramientas.

Crear una extensión con un control cuadro de herramientas de Windows Forms

  1. Cree un proyecto VSIX denominado MyWinFormsControl. Puede encontrar la plantilla de proyecto VSIX en el cuadro de diálogo Nuevo proyecto ; para ello, busque "vsix".

  2. Cuando se abra el proyecto, agregue una plantilla de elemento control del cuadro de herramientas de Windows Forms denominada Counter. En el Explorador de soluciones, haga clic con el botón derecho en el nodo del proyecto y seleccione Agregar>Nuevo elemento. En el cuadro de diálogo Agregar nuevo elemento, vaya a Visual C#>Extensibilidad y seleccione Control del cuadro de herramientas de Windows Forms.

  3. Esto agrega un control de usuario, un ProvideToolboxControlAttributeRegistrationAttribute para colocar el control en el cuadro de herramientas y una entrada de recurso Microsoft.VisualStudio.ToolboxControl en el manifiesto VSIX para la implementación.

Creación de una interfaz de usuario para el control

El Counter control requiere dos controles secundarios: un Label para mostrar el recuento actual y un Button para restablecer el recuento a 0. No se requieren otros controles secundarios porque los autores de llamadas incrementarán el contador mediante programación.

Para crear la interfaz de usuario

  1. En Explorador de soluciones, haga doble clic en Counter.cs para abrirlo en el diseñador.

  2. Quite el botón Hacer clic aquí ! que se incluye de forma predeterminada al agregar la plantilla de elemento Control del cuadro de herramientas de Windows Forms.

  3. En el Cuadro de herramientas, arrastre un Label control y, a continuación, un Button control debajo de él a la superficie de diseño.

  4. Cambie el tamaño del control de usuario general a 150, 50 píxeles y cambie el tamaño del control de botón a 50, 20 píxeles.

  5. En la ventana Propiedades , establezca los siguientes valores para los controles de la superficie de diseño.

    Control Propiedad valor
    Label1 Texto ""
    Button1 Nombre btnReset
    Button1 Texto Restablecer

Codificar el control de usuario

El Counter control expondrá un método para incrementar el contador, un evento que se generará cada vez que se incremente el contador, un botón Restablecer y tres propiedades para almacenar el recuento actual, el texto para mostrar y si se va a mostrar u ocultar el botón Restablecer . El atributo ProvideToolboxControl determina la ubicación del Cuadro de herramientas donde se mostrará el control Counter .

Para codificar el control de usuario

  1. Haga doble clic en el formulario para abrir su controlador de eventos de carga en la ventana de código.

  2. Encima del método del controlador de eventos, en la clase de control, cree un entero para almacenar el valor del contador y una cadena para almacenar el texto para mostrar, tal como se muestra en el ejemplo siguiente.

    int currentValue;
    string displayText;
    
  3. Cree las siguientes declaraciones de propiedad pública.

    public int Value {
        get { return currentValue; }
    }
    
    public string Message {
        get { return displayText; }
        set { displayText = value; }
    }
    
    public bool ShowReset {
        get { return btnReset.Visible; }
        set { btnReset.Visible = value; }
    }
    
    

    Los autores de llamadas pueden acceder a estas propiedades para obtener y establecer el texto para mostrar del contador y mostrar u ocultar el botón Restablecer . Los autores de llamadas pueden obtener el valor actual de la propiedad de solo Value lectura, pero no pueden establecer el valor directamente.

  4. Coloque el código siguiente en el Load evento para el control .

    private void Counter_Load(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = Message + Value;
    }
    
    

    Establecer el texto etiqueta en el Load evento permite que las propiedades de destino se carguen antes de que se apliquen sus valores. Si se establece el texto etiqueta en el constructor, se producirá una etiqueta vacía.

  5. Cree el siguiente método público para incrementar el contador.

    public void Increment()
    {
        currentValue++;
        label1.Text = displayText + Value;
        Incremented(this, EventArgs.Empty);
    }
    
    
  6. Agregue una declaración para el Incremented evento a la clase de control.

    public event EventHandler Incremented;
    

    Los autores de llamadas pueden agregar controladores a este evento para responder a los cambios en el valor del contador.

  7. Vuelva a la vista de diseño y haga doble clic en el botón Restablecer para generar el controlador de btnReset_Click eventos. A continuación, llene como se muestra en el ejemplo siguiente.

    private void btnReset_Click(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = displayText + Value;
    }
    
    
  8. Justo encima de la definición de clase en la declaración de atributos de ProvideToolboxControl , cambie el valor del primer parámetro de "MyWinFormsControl.Counter" a "General". Se establece el nombre del grupo de elementos que va a hospedar el control en el Cuadro de herramientas.

    En el ejemplo siguiente se muestra el atributo ProvideToolboxControl y la definición de clase ajustada.

    [ProvideToolboxControl("General", false)]
    public partial class Counter : UserControl
    

Prueba del control

Para probar un control Cuadro de herramientas , pruebelo primero en el entorno de desarrollo y, a continuación, pruebelo en una aplicación compilada.

Para probar el control

  1. Presione F5 para iniciar la depuración.

    Este comando compila el proyecto y abre una segunda instancia experimental de Visual Studio que tiene instalado el control .

  2. En la instancia experimental de Visual Studio, cree un proyecto de aplicación de Windows Forms.

  3. En Explorador de soluciones, haga doble clic en Form1.cs para abrirlo en el diseñador si aún no está abierto.

  4. En el Cuadro de herramientas, el Counter control debe mostrarse en la sección General .

  5. Arrastre un Counter control al formulario y selecciónelo. Las Valuepropiedades , Messagey ShowReset se mostrarán en la ventana Propiedades , junto con las propiedades que se heredan de UserControl.

  6. Establezca la propiedad Message en Count:.

  7. Arrastre un Button control al formulario y establezca las propiedades de nombre y texto del botón en Test.

  8. Haga doble clic en el botón para abrir Form1.cs en la vista de código y crear un controlador de clics.

  9. En el controlador de clics, llame a counter1.Increment().

  10. En la función constructora, después de la llamada a InitializeComponent, escriba counter1``.``Incremented += y presione Tab dos veces.

    Visual Studio genera un controlador de nivel de formulario para el counter1.Incremented evento.

  11. Resalte la Throw instrucción en el controlador de eventos, escriba mboxy presione Tab dos veces para generar un cuadro de mensaje desde el fragmento de código mbox.

  12. En la línea siguiente, agregue el siguiente if/else bloque para establecer la visibilidad del botón Restablecer .

    if (counter1.Value < 5) counter1.ShowReset = false;
    else counter1.ShowReset = true;
    
  13. Presione F5.

    Se abre el formulario. El Counter control muestra el texto siguiente.

    Recuento: 0

  14. Seleccione Probar.

    Los incrementos de contador y Visual Studio muestran un cuadro de mensaje.

  15. Cierre el cuadro de mensaje.

    El botón Restablecer desaparece.

  16. Seleccione Probar hasta que el contador alcance 5 cerrando los cuadros de mensaje cada vez.

    Vuelve a aparecer el botón Restablecer .

  17. Seleccione Restablecer.

    El contador se restablece a 0.

Pasos siguientes

Cuando se crea un control del Cuadro de herramientas , Visual Studio crea un archivo denominado NombreDelProyecto.vsix en la carpeta \bin\debug\ del proyecto. Puede implementar el control cargando el archivo .vsix en una red o en un sitio web. Cuando un usuario abre el archivo .vsix, el control se instala y se agrega al Cuadro de herramientas de Visual Studio en el equipo del usuario. Como alternativa, puede cargar el archivo .vsix en Visual Studio Marketplace para que los usuarios puedan encontrarlo navegando en el cuadro de diálogo Extensiones de herramientas>y Novedades.