Exportar (0) Imprimir
Expandir todo

Tutorial: Crear un control de formularios Windows Forms

Los controles de formularios Windows Forms son componentes que se pueden colocar en aplicaciones de Windows Forms (aplicaciones GUI orientados a Common Language Runtime). Las aplicaciones de Windows Forms en Visual C++ utilizan clases de .NET Framework y otras características .NET con la nueva sintaxis de Visual C++.

En este procedimiento, crea un control de formularios Windows Forms con un número que se incrementa cada vez que se hace clic en la etiqueta de una aplicación. También creará un proyecto de aplicación de Windows Forms para probar el control.

En este tutorial se trata lo siguiente:

  • Crear un proyecto nuevo

  • Diseñar el control

  • Agregar una propiedad personalizada al control

  • Agregar un proyecto para probar el control

  • Colocar el control en una aplicación

  • Ejecutar la aplicación

La plantilla de un proyecto de control de formularios Windows Forms que utiliza en esta sección crea un control de usuario, es decir, un control compuesto que contiene otros controles.

Como alternativa, puede crear un control de formularios Windows Forms derivando una clase directamente de la clase Control (en la que el código es responsable de dibujar el control) o de la clase Component (un control sin interfaz de usuario).

Para crear un nuevo proyecto de control de formularios Windows Forms

  1. En el menú Archivo, haga clic en Nuevo y, a continuación, haga clic en Proyecto….

  2. En el panel Tipos de proyecto, seleccione CLR en el nodo Visual C++, a continuación, seleccione Biblioteca de controles de Windows Forms en el panel Plantillas instaladas de Visual Studio.

    Escriba un nombre para el proyecto, como clickcounter.

    Escriba un nombre diferente para la solución, como controlandtestapp.

    Puede aceptar la ubicación predeterminada, escribir una ubicación o ir al directorio donde desea guardar el proyecto.

  3. Se abre el Diseñador de Windows Forms y muestra un área en la que agrega los controles que desea colocar en la superficie de diseño de control.

En este paso, agrega un control Label a la superficie de diseño de control. Establece, a continuación, algunas propiedades en el propio control y en el control Label que contiene.

Para establecer las propiedades de un control de usuario

  1. Si la ventana Propiedades no está visible, en el menú Ver haga clic en Ventana Propiedades.

    Haga clic en el control para seleccionarlo y establezca sus propiedades del modo siguiente:

    • Establezca la propiedad Size en 100, 100.

    • Establezca BorderStyle en Fixed3D

      Los límites de la etiqueta estarán visibles cuando el control esté colocado en una aplicación.

  2. Si la ventana Cuadro de herramientas no está visible, haga clic en Cuadro de herramientas en el menú Ver.

    Arrastre un control Label desde el Cuadro de herramientas hasta la superficie de diseño y colóquelo cerca del medio del control.

    Establezca estas propiedades para la etiqueta:

    • Establezca BorderStyle en FixedSingle

    • Establezca Text en el dígito 0 (cero).

    • Establezca Autosize a False.

    • Establezca Size en 30, 20.

    • Establezca TextAlign en MiddleCenter.

    Deje la propiedad Name (como haga referencia a ella en el código) sin modificar como label1. El control debe tener la apariencia siguiente:

    El diseño del control
  3. Agregue un controlador de eventos para el evento Click de la etiqueta (el evento predeterminado para una etiqueta) haciendo doble clic en la etiqueta.

  4. El archivo clickcounter.h se muestra en el área de edición con un método controlador de eventos vacío generado.

    NoteNota

    Cierre el Cuadro de herramientas o la ventana Propiedades, si necesita más espacio, haciendo clic en los cuadros de cierre o liberándolos para que se oculten automáticamente.

  5. Presione Entrar después de la llave de apertura del método label1_Click y escriba:

    int temp = System::Int32::Parse(label1->Text);
    temp++;
    label1->Text = temp.ToString();
    

    IntelliSense™ muestra una lista de opciones válidas después de escribir un operador de resolución de ámbito (::), operador de punto (.) u operador de flecha (- >). Puede resaltar un elemento y presionar Tabulador o Entrar, o hacer doble clic en un elemento para insertarlo en el código.

    Asimismo, cuando escribe un paréntesis de apertura para un método, Visual Studio muestra tipos de argumentos válidos para cada sobrecarga del método.

En este paso, define una propiedad personalizada que permite a un desarrollador de aplicaciones determinar si el número mostrado en el control se incrementa al hacer clic en la etiqueta o en cualquier ubicación del control.

Para agregar una propiedad personalizada a un control

  1. Coloque el cursor después de los dos puntos del primer indicador de ámbito public en la parte superior del archivo clickcounterControl.h, presione Entrar y escriba lo siguiente:

    property bool ClickAnywhere {
        bool get() {
            return (label1->Dock == DockStyle::Fill);
        }
        void set(bool val) {
            if (val) 
                label1->Dock = DockStyle::Fill;
            else 
                label1->Dock = DockStyle::None;
        }
    }
    

    Cuando la propiedad ClickAnywhere del control está establecida en true, la propiedad Dock de la etiqueta está establecida en DockStyle::Fill, de modo que la etiqueta llena toda la superficie de control. Un clic en cualquier parte de la superficie de control producirá un evento Click de la etiqueta, que incrementa el número en la etiqueta.

    Cuando la propiedad ClickAnywhere es false (el valor predeterminado), la propiedad Dock de la etiqueta se establece en DockStyle::None. La etiqueta no llena el control y un clic en el control debe realizarse dentro de los límites de la etiqueta para que produzca un evento Click de la etiqueta, que incrementa el número.

  2. Crear el control de usuario. En el menú Generar, seleccione Generar solución.

    Si no hay ningún error, un control de formularios Windows Forms se genera con un nombre de archivo de clickcounter.dll. Puede buscar este archivo en la estructura de directorios del proyecto.

En este paso, crea un proyecto de aplicación de Windows Forms donde colocará instancias del control clickcounter en un formulario.

NoteNota

La aplicación de Windows Forms que crea para probar el control se puede escribir con Visual C++ o con otro lenguaje .NET, como C# o Visual Basic .NET.

Para crear un proyecto de aplicación de Windows Forms

  1. En el menú Archivo, haga clic en Nuevo y, a continuación, haga clic en Proyecto….

    También puede agregar un proyecto a la solución haciendo clic con el botón secundario del mouse en la solución controlandtestapp en el Explorador de soluciones, señalando a Agregar y haciendo clic en Nuevo proyecto.

  2. En el panel Tipos de proyecto, seleccione CLR en el nodo Visual C++, a continuación, seleccione Aplicación de Windows Forms en el panel Plantillas instaladas de Visual Studio.

    Escriba un nombre para el proyecto, como testapp.

    Asegúrese de seleccionar Agregar a solución en lugar de aceptar la configuración predeterminada Crear nueva solución en la lista desplegable Solución y, a continuación, haga clic en Aceptar.

  3. Se abre el Diseñador de Windows Forms para el nuevo proyecto y muestra un nuevo formulario llamado Form1.

    Formulario creado recientemente

Para agregar un control al Cuadro de herramientas

  1. Agregar una referencia al control. En el menú Proyecto, haga clic en Referencias o haga clic con el botón secundario del mouse en el proyecto testapp en el Explorador de soluciones y haga clic en Referencias.

    Haga clic en el botón Agregar nueva referencia y, a continuación, en la ficha Proyectos (está agregando una referencia a otro proyecto de esta solución) y seleccione el proyecto clickcounter. Haga clic dos veces en Aceptar.

  2. Si la ventana Cuadro de herramientas no está visible, haga clic en Cuadro de herramientas en el menú Ver.

  3. Haga clic con el botón secundario del mouse en el Cuadro de herramientas y haga clic en Elegir elementos.

    Haga clic en el botón Examinar y busque el archivo clickcounter.dll en la estructura de directorios de soluciones. Selecciónelo y haga clic en Abrir.

    El control clickcounter aparece en la lista Componentes de .NET Framework con una marca de verificación. Haga clic en Aceptar.

    El control aparece en el Cuadro de herramientas con el icono de "engranaje" predeterminado.

En este paso, coloca dos instancias del control en un formulario de aplicación y establece sus propiedades.

Para colocar instancias de un control en un formulario

  1. Arrastre dos instancias del control clickcounter desde el Cuadro de herramientas. Colóquelas en el formulario de modo que no se superpongan.

    Si necesita ensanchar el formulario, haga clic en él para seleccionarlo y arrastre hacia fuera uno de los controladores de selección.

  2. Si la ventana Propiedades no está visible, haga clic en Propiedades en el menú Ver.

    La propiedad ClickAnywhere está en la sección Varios de la Ventana Propiedades si las propiedades están organizadas por categorías.

  3. Haga clic en una instancia del control clickcounter del formulario para seleccionarla y, a continuación, establezca la propiedad ClickAnywhere en true.

  4. Deje la propiedad ClickAnywhere de la otra instancia del control clickcounter establecida en false (el valor predeterminado).

  5. Haga clic con el botón secundario del mouse en el proyecto testapp en el Explorador de soluciones y seleccione Establecer como proyecto de inicio.

  6. En el menú Generar, haga clic en Volver a generar solución.

    Verá que los dos proyectos se generan sin errores.

En este paso, ejecuta la aplicación y hace clic en los controles para probarlas.

Para colocar instancias de un control en un formulario

  1. En el menú Depurar, haga clic en Iniciar depuración.

    El formulario aparece con las dos instancias del control visible.

  2. Ejecute la aplicación y haga clic en ambos controles clickcounter:

    • Haga clic en el control con ClickAnywhere establecido en true.

      El número de la etiqueta se incrementa cuando hace clic en cualquier parte del control.

    • Haga clic en el control con ClickAnywhere establecido en false.

      El número de la etiqueta sólo se incrementa al hacer clic dentro del límite visible de la etiqueta.

Aplicación de prueba que muestra los controles
  1. Cierre la aplicación de prueba haciendo clic en su cuadro de cierre en la esquina superior derecha de la ventana Form1.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft