¿Ya sabes cómo programar Winforms en este tutorial de C#?

Su primera Winform en C#

Cuando crea un nuevo proyecto en Visual C# (o Visual Studio 2003, 2005 o 2008) y selecciona Proyecto Visual C# y Aplicación Windows, selecciona una ruta para colocar el proyecto en algún lugar, le da un nombre como "ex1" y hace clic en Aceptar. Debería ver algo como el gráfico que lo acompaña. Si no puede ver la caja de herramientas a la izquierda, haga clic en Ver, luego en Caja de herramientas en el menú o en Ctrl-Alt-X en el teclado. Si desea que la caja de herramientas permanezca abierta, haga clic en la chincheta, justo a la izquierda de Cerrar caja de herramientas X.

 

Cambie el tamaño del formulario haciendo clic y arrastrando los controles de la derecha o de la parte inferior. Ahora haga clic en Botón en la caja de herramientas y arrástrelo al formulario en la esquina inferior derecha. Cambie el tamaño a su gusto. En la parte inferior derecha del IDE de Visual C#/Visual Studio, debería ver una ventana acoplada llamada Propiedades. Si no puede verlo, haga clic con el botón derecho del ratón en el formulario (dirá botón1) y haga clic en propiedades en la parte inferior del menú emergente que aparece. Esta ventana tiene un pasador para que pueda cerrarla o mantenerla abierta cuando lo desee.

En la ventana Propiedades, debería ver una línea que dice:

 

 (Name) button1

 

Si dice "Form1" en lugar de "botón1", entonces accidentalmente hizo clic en el formulario. Simplemente haga clic en el botón. Ahora, haga doble clic donde dice botón1 en el Inspector y escriba btnCerrar. Desplácese hasta la parte inferior del Inspector de Propiedades y verá:

 

 Text button1

 

Haga doble clic en el botón1, escriba "Cerrar" y pulse Intro. Ahora debería ver que el botón tiene la palabra Cerrar.

Añadir un evento de formulario

Haga clic en el formulario y en el Inspector de Propiedades y cambie el texto a Mi Primera Aplicación! Verá que el título del formulario ahora muestra esto. Haga doble clic en el botón Cerrar y verá el código C# que se ve así:

 

 private void btnClose_Click(object sender, System.EventArgs e) {

}

 

Entre las dos abrazaderas agregue:

 

Close();

 

Haga clic en Construir en el menú superior seguido de Construir solución. Si compila correctamente (lo que debería), verá las palabras "Build Succeeded" en la línea de estado inferior del IDE. Haga clic en F5 para ejecutar la aplicación y mostrarle un formulario abierto. Haga clic en el botón Cerrar para cerrarlo.

Utilice el Explorador de Windows para encontrar su proyecto. Si usted llamó "ex1" al Nombre del Proyecto y al Nombre de la Nueva Solución, estará buscando en ex1\ex1. Haga doble clic y verá que la aplicación se ejecuta de nuevo.

 

Ha creado su primera aplicación. Ahora, agregue funcionalidad.

 

Agregar funcionalidad a la aplicación C#

Cada formulario que se crea tiene dos partes:

 

  • Vista de diseño, donde se colocan los controles en el formulario, se establecen las propiedades y se añade el código de gestión de eventos.
  • Vista de código, donde se escribe el código. Si no puede ver la parte del código, haga clic en Ver y luego en Código en el menú superior. Debería ver las pestañas Form1.cs[diseño] y Form1.cs.

 

Su primer formulario es una simple aplicación que le permite introducir una cadena y luego visualizarla. Para añadir un menú simple, seleccione la pestaña Form1[design], haga clic en MainMenu en la caja de herramientas y arrástrela al formulario. Verá que aparece una barra de menú en el formulario, pero el control se muestra en un panel amarillo debajo del formulario. Utilice esta opción para seleccionar el control de menú.

Haga clic en la barra de menú del formulario donde dice "Escriba Aquí" y escriba "Archivo". Verás dos Tipo Heres. Uno a la derecha para añadir más elementos de menú de nivel superior y otro a continuación para añadir elementos de submenú. Escriba "Reset" en el menú superior y salga al submenú Archivo.

 

Agregue una etiqueta en el formulario cerca de la parte superior izquierda y coloque el texto en "Introducir una cadena". Bajo esto, arrastre un TextBox y cambie su nombre a "EdEntry" y borre el texto para que parezca en blanco. Establezca su propiedad bloqueada en "True" para evitar que la mueva accidentalmente.

 

Adición de una barra de estado y un gestor de eventos

Arrastre una barra de estado al formulario, coloque Bloqueado en "True" y borre su propiedad Text. Si esto oculta el botón Cerrar, muévalo hacia arriba hasta que sea visible. La barra de estado tiene un control de tamaño en la esquina inferior derecha, pero si compila y ejecuta esto, el botón Cerrar no se mueve cuando cambia el tamaño del formulario. Esto se fija fácilmente cambiando la propiedad de anclaje del encofrado de modo que los anclajes inferior y derecho estén colocados. Cuando cambie la propiedad de anclaje, verá cuatro barras en la parte superior, izquierda, inferior y derecha. Haga clic en los que desee utilizar. Para este ejemplo, queremos la parte inferior y la derecha, así que despeja las otras dos, que están configuradas por defecto. Si tiene los cuatro configurados, entonces el botón se estira.

Añada una etiqueta más debajo del TextBox y llámelo labelData. Ahora seleccione la TextBox y en la propiedad Inspector, haga clic en el icono Relámpago. Esto muestra todos los eventos que un TextBox puede hacer. El valor por defecto es "TextChanged", y eso es lo que usas. Seleccione el cuadro de texto y haga doble clic en él. Esto crea un manejador de eventos vacío, así que agregue estas dos líneas de código entre las llaves { } y compile y ejecute la aplicación.

 

 labelData.Text = EdEntry.Text;

statusBar1.Text = EdEntry.Text;

 

Cuando la aplicación se esté ejecutando, haga clic en el cuadro de texto y comience a escribir. Verá que los caracteres que escriba aparecen dos veces, una debajo del cuadro y otra en la barra de estado. El código que hace eso está en un manejador de eventos (es conocido como delegado en C#).

 

 private void EdEntry_TextChanged(object sender, System.EventArgs e)

  {

    labelData.Text = EdEntry.Text;

    statusBar1.Text = EdEntry.Text;

   }

Revisión de lo que se ha cubierto

Este artículo demuestra una parte fundamental del trabajo con WinForms. Cada forma o control en ella es una instancia de una clase. Cuando suelta un control en un formulario y establece sus propiedades en el Editor de propiedades, el diseñador genera código entre bastidores.

 

Cada control en un formulario es una instancia de una clase System.Windows.Forms y se crea en el método InitializeComponent(). Puedes añadir o editar código aquí. Por ejemplo, en la sección // menuItem2, añada esto al final y compile/run.

 

 this.menuItem2.Visible = false;

 

Ahora debería parecer que:

 

 ...

// menuItem2

//

this.menuItem2.Index = 1;

this.menuItem2.Text = "&Reset";

this.menuItem2.Visible = false;

...

Ahora falta el elemento Reset Menu. Salga del programa y en las propiedades de este elemento de menú verá que la propiedad Visible es falsa. Alterne esta propiedad en el diseñador, y el código en el Form1.cs añadirá y luego quitará la línea. El editor de formularios es ideal para crear fácilmente interfaces gráficas de usuario sofisticadas, pero todo lo que hace es manipular su código fuente.

 

Adición dinámica de un delegado

Haga que el menú de reinicio sea visible, pero establezca Habilitado en false. Cuando ejecute la aplicación, la verá desactivada. Ahora agrega un CheckBox, llámalo cbAllowReset y establece el texto en "Allow Reset". Haga doble clic en la casilla de verificación para crear un manipulador de eventos ficticio e introdúzcalo:

 

 menuItem2.Enabled = cbAllowReset.Checked;

 

Cuando ejecute la aplicación, puede habilitar el elemento Restablecer Menú haciendo clic en la casilla de verificación. Todavía no hace nada, así que añade esta función escribiéndola. No haga doble clic en la opción Restablecer menú.

 private void EdEntry_ResetClicked(object sender, System.EventArgs e)

{

EdEntry.Text = "";

}

 

Si ejecuta la aplicación, cuando se hace clic en Restablecer no ocurre nada, porque el evento Restablecer no está unido al ResetClick. Añada esta sentencia if a la sentencia cbAllow_ResetCheckedChanged() justo después de la línea que comienza:

 

 menuItem2.Enabled = cbAllowReset.Checked;

if (menuItem2.Enabled)

{

this.menuItem2.Click += new System.EventHandler(this.EdEntry_ResetClicked) ;

}

La función debería tener el siguiente aspecto:

 

 private void cbAllowReset_CheckedChanged(object sender, System.EventArgs e)

{

  menuItem2.Enabled = cbAllowReset.Checked;

  if (menuItem2.Enabled)

    {

     this.menuItem2.Click += new System.EventHandler(this.EdEntry_ResetClicked) ;

  }

}

 

Cuando lo ejecute ahora, escriba algo de texto en el cuadro, haga clic en la casilla de verificación y haga clic en Restablecer. Se borra el texto. Esto agregó el código para conectar un evento en tiempo de ejecución.

(0 votes)