Compartir vía


Creación de un control de cuadro de herramientas de Windows Forms

La plantilla de elementos del control del cuadro de herramientas de Windows Forms que se incluye en las Herramientas de extensibilidad de Visual Studio (SDK de VS) le permite crear un control del 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 se pueda distribuir a otros usuarios.

Creación del control de cuadro de herramientas

La plantilla de control de cuadro de herramientas de Windows Forms crea un control de usuario no definido y proporciona todas las funciones necesarias para agregar el control al Cuadro de herramientas.

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

  1. Cree un proyecto de 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 elementos de 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 RegistrationAttribute ProvideToolboxControlAttribute 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 control Counter requiere dos controles secundarios: una Label para mostrar el recuento actual y un Button para restablecer el recuento a 0. No se necesitan más controles secundarios, dado que los llamadores incrementarán el contador mediante programación.

Para crear la interfaz de usuario

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

  2. Quite el botón Haga clic aquí que se incluye de forma predeterminada al agregar la plantilla de elementos de control del cuadro de herramientas de Windows Forms.

  3. En el Cuadro de herramientas, arrastre un control Label y, a continuación, un control Button situado 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 Reset

Codificación del control de usuario

El control Counter presentará un método para incrementar el contador, un evento que se desencadenará cuando el contador se incremente, un botón Restablecer y tres propiedades para almacenar el recuento actual, el texto para mostrar y si se debe 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 llamadores pueden acceder a estas propiedades para obtener y establecer el texto para mostrar del contador y mostrar u ocultar el botón Restablecer. Los llamadores pueden obtener el valor actual de la propiedad Value de solo lectura, pero no pueden establecer el valor directamente.

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

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

    Establecer el texto Etiqueta en el evento Load 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 evento Incremented a la clase de control.

    public event EventHandler Incremented;
    

    Los llamadores 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 del evento btnReset_Click. A continuación, rellénelo 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 del Cuadro de herramientas , pruébelo primero en el entorno de desarrollo y, luego, vuelva a probarlo en una aplicación compilada.

Para probar el control

  1. Pulse F5 para iniciar la depuración.

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

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

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

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

  5. Arrastre un control Counter al formulario y selecciónelo. Las propiedades Value, Message y 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 control Button 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 cree un controlador de clics.

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

  10. En la función del constructor, después de la llamada a InitializeComponent, escriba counter1``.``Incremented += y, a continuación, pulse la tecla Tab dos veces.

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

  11. Resalte la instrucción Throw en el controlador de eventos, escriba mbox y pulse 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 bloque if/else 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 control Counter muestra el siguiente texto.

    Recuento: 0

  14. Seleccione Probar.

    El contador se incrementa y Visual Studio muestra un cuadro de mensaje.

  15. Cierre el cuadro del 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. Para implementar el control cargando el archivo .vsix en una red o 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 Herramientas>Extensiones y actualizaciones.