Aprendiendo .NET sobre la marcha: Viejos Windows Forms (iii)
<< Aprendiendo .NET sobre la marcha: viejos Windows Forms (ii)
Aprendiendo .NET sobre la marcha: viejos Windows Forms (iv) >>
Vamos a trabajar por fin con la interfaz gráfica de nuestro proyecto. Son muchos los controles, así que utilizaremos algunos de los más comunes para nuestro formulario. Esto servirá de base para entender las propiedades, métodos y eventos para el entorno gráfico.
Puesto que en este punto nuestra aplicación es capáz de realizar algunos cálculos geométricos básicos, vamos a utilizar un menú que nos despliegue las opciones, además es una forma sencilla de organizar todo lo que una aplicación puede realizar. Y lo primero será abrir de nuestro proyecto basado en WindowsForms el formulario que tiene con un doble clic.
En el Cuadro de herramientas encontramos todos los componentes que podríamos usar en una aplicación, y se nos muestran agrupados, así que abrimos el grupo Menús y barras de herramientas y damos doble clic en el objeto MenuStrip que generará una barra de menús. Ahora simplemente escribimos la siguiente estructura de menús
| Triángulo | Cuadrilátero | Prisma | Pirámide |
| Perímetro | Perímetro | Superficie lateral | Superficie lateral |
| Superficie | Superficie | Superficie total | Superficie total |
| Volúmen | Volúmen |
A continuación da doble clic en el fondo del formulario, también en cualquiera de las opciones de UN menú, y en UNO de los dos botones (en mi caso fue la primera opción y el primer botón). Después de cada doble clic Visual Studio nos lleva al código del formulario, y la idea de dar doble clic en un elemento de cada tipo es para explicar mejor, aprovechar la herencia y capacidad de reuso que tienen los objetos.
Como no le cambiamos nombre a ninguno de los objetos, Visual Studio asignará unos por defecto. El código debe ser similar al siguiente para la clase de nuestro formulario.
public partial class Form1 : Form
{
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
}
private void perímetroToolStripMenuItem_Click(object sender, EventArgs e) {
}
private void button1_Click(object sender, EventArgs e) {
}
}
Modificamos el método Form1_Load y después de él escribimos un nuevo método. Debe ir quedando como el siguiente código:private void Form1_Load(object sender, EventArgs e) {
InicializarControles();
}
private void InicializarControles() {
foreach (var item in this.Controls) {
if (item is Label)
(item as Label).Text = string.Empty;
else if (item is Button)
(item as Button).Enabled = false;
else if (item is TextBox) {
(item as TextBox).Text = string.Empty;
(item as TextBox).Enabled = false;
}
}
}
Lo que esto hace es recorrer la colección de controles existentes dentro del formulario y si es de tipo etiqueta (Label) entonces vacía el contenido, si es botón (Button) lo deshabilita, y si es cuadro de texto (TextBox) lo vacía e inhabilita. Está en un método para que sea más fácil reutilizar el bloque.
Lo siguiente será desde la vista de diseño para nuestro formulario usando la paleta de propiedades, dando clic en el botón con el dibujo de un rayo en esta paleta. Esto nos mostrará los eventos a los que un objeto puede responder con un método. Para este caso, vamos a dar clic en cada una de los opciones dentro de nuestros menús, y en los eventos elegimos el de Click y seleccionamos el método que diga "algo" + "ToolStripMenuItem_Click", como muestra la siguiente imagen.
Ahora modificamos el método del click para las opciones de los menús de la forma siguiente:
private void perímetroToolStripMenuItem_Click(object sender, EventArgs e) {
MessageBox.Show((sender as ToolStripMenuItem).Text,"Mi aplicación",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
Esto hace que todas las opciones de menú utilicen el mismo método para responder, ahí estamos usando el objeto sender (que es quien mandó a ejecutar el método por medio del evento de clic) para desplegar el texto que tiene, dentro de un cuadro de diálogo.


Comentarios
Publicar un comentario