Buscar este blog

lunes, 10 de marzo de 2014

BIENVENIDOS



Bienvenidos a este blog, en el cual veremos el tema de Controles, Eventos y Métodos Básicos.
Esperamos que con este blog puedan entender un poco mejor acerca de los controles estándar, las propiedades de un formulario, los menús, entre otras cosas, que explicaremos con detalle, ya que mostraremos las definiciones y la visualización de todo esto, esperando que puedan entenderlo con facilidad, apreciando su visita, de antemano, ¡GRACIAS!.

INTRODUCCIÓN

El objetivo de esta unidad es identificar los principales controles y componentes estándar de C# que les permita aplicarlos de acuerdo a la problemática que se desea resolver. Para ello contamos con una caja de herramientas (Toolbox) que nos ofrece una colección muy importante de estos elementos los cuales están organizados en categorías para su rápida localización.

2.1 Controles Estándar

Los controles estándar son una colección de herramientas que pueden utilizarse en una interfaz gráfica mediante el uso de un formulario, algunos de ellos pueden ser, los botones, las cajas de texto, las etiquetas, entre otros.
Cada uno de estos objetos tienen su utilidad, y en C# no es necesario crearlos, ya que vienen incluidos en el programa, únicamente se necesita crear el formulario e ir a la caja de herramientas y ahí estarán todos los controles estándar, únicamente tendremos que colocarlos dentro del formulario para poder hacer uso de ellos.
Cada control estándar están compuesto por una serie de Propiedades, Métodos y Eventos.
Veamos la definición:

  • Las propiedades son simplemente variables. Sin embargo, a diferencia de una variable "común", están estrechamente vinculados a un objeto. Por ejemplo, puede definir una variable (propiedad) a nivel de Form, que se llame "lPuedeModificar". La letra "l" indica el tipo de la variable (en este caso, lógico), y la variable indica si le es permitido, al usuario, hacer modificaciones. Puede tener varias pantallas abiertas a la vez; cada una tiene su "copia personal" de la variable, que puede tener un valor distinto en cada pantalla.

  • Los eventos y métodos son equivalentes a los procedimientos o funciones. Nuevamente, están estrechamente vinculados a un objeto específico. En realidad, los eventos también son métodos; la única diferencia entre un evento y un método "común" es que el evento se ejecuta automáticamente bajo ciertas condiciones. Por ejemplo, órdenes que se escriben en Init() automáticamente se ejecutan cuando se "instancia" un objeto; órdenes en Destroy() se ejecutan cuando deja de existir; varios eventos responden a acciones del usuario, como Click(), RightClick(), InteractiveChange() y otros; etc.
Para este blog, se harán uso únicamente de tres tipos de controles: Controles Comunes, Contenedores, y Menú y Herramientas.



2.2 Eventos y Propiedades del Formulario

El formulario es el primer objeto o control que se visualiza en C# y constituye la pantalla o ventana sobre la que se colocan otros objetos o controles como etiquetas, controles de texto, botones, etc. y por supuesto el código necesario de nuestros programas, por lo tanto constituirán la Interfaz de usuario.
Al igual que todo control tiene sus propiedades, las mismas que podemos establecerlas en la ventana de propiedades.


Propiedades del formulario


Name: En todo control la primera propiedad que debe establecerse es el nombre del objeto, es recomendable que en el caso del formulario las tres primeras letras sean Frm, precisamente para saber que se trata de un formulario, y luego seguida del nombre que se le quiere asignar, no admite espacios.


BackColor: Permite cambiar el color del fondo del formulario.

BackgroundImage: Establece una imagen como fondo del formulario.


BackgroundImageLayout: Diseño de la imagen de fondo: None, Tile, Center, Stretch, Zoom.


ControlBox: Determina si la ventana tiene o no botones de control.

Cursor: Cursor que aparecerá al pasar el puntero por el formulario, se visualizará sólo en tiempo de ejecución.

FormBorderStyle: Establece el estilo del borde del formulario.


Icon: Indica el ícono del formulario es decir aquel que va en la barra de título, se visualizará también en la barra de tareas de windows cuando el formulario se minimiza.

MaximizeBox: Permite que el botón de maximizar que se encuentra en los botones de control se encuentre habilitado o no.

MinimizeBox: Permite que el botón de minimizar que se encuentra en los botones de control se encuentre habilitado o no.

ShowIcon: Indica si un icono se muestra o no en la barra de título del formulario.

ShowInTaskbar: Determina si el formulario aparece en la barra de tareas de windows.

Text: Representa el texto que se visualizará en la barra de título

WindowState: Determina el estado visual inicial del formulario: Normal, Maximized, Minimized.

Eventos del Formulario

Los eventos los podemos encontrar en la ventana de código, la misma que se presenta al dar doble clic sobre el objeto, en este caso el formulario.

Click: Este evento se ejecutará al dar clic sobre el control en este caso sobre el formulario.

MouseMove: Este evento indica que cuando pase el puntero del mouse por el formulario se ejecutará lo que este codificado en él.

FormClosing: Este evento se ejecutará cuando se cierre la ventana.

Métodos del Formulario

Show: Permite llamar o presentar otro formulario

Close: Este método me permite cerrar la ventana.

2.3 Tipos de Formulario

En un formulario, pueden tenerse ciertas propiedades, las cuales diferencian cada tipo de formulario existente, cada uno tiene un uso especifico y puede optimizar la calidad de la aplicación a realizarse, algunos ejemplos de estos tipos de formularios son:


  • Formulario MDI: Se denomina el formulario padre, solo puede existir uno en cada proyecto.

  • Formulario Child: Formulario hijo que se encuentra dentro de un formulario MDI.

  • Formulario MSGBox:  pequeño mensaje de ventana emergente con el texto, titulo, botones de opciones que tu decidas.

  • Formulario INPUTBox: similar al msgbox, la diferencia es que muestra un campo de texto para ingresar información.

Así entonces, estos son algunos de los tipos de formularios existentes, son los mas usados en la programación de interfaces, facilitan el uso de las aplicaciones creadas.

2.4 Cajas de Diálogo

Un cuadro de diálogo se puede utilizar para mostrar información textual y permitirles que los usuarios tomen decisiones con botones. Estas cajas de diálogo son utilizados comúnmente cuando se requiere que el usuario tome una decisión, algo como si desea guardar los cambios, o si esta seguro de finalizar la aplicación, entre otras.



Cuadro de diálogo Procesador de textos


Estas cajas de diálogo permiten al usuario interactuar de una manera sencilla con las aplicaciones, y facilitar la toma de decisiones al momento de trabajar con una aplicación.

Las cajas de dialogo pueden ser utilizadas en C#, ya que forman parte del sistema de Windows, así que al ser parte del sistema, también permite utilizarlas en C#, ya sean algunas que estén predefinidas por el sistemas, o propias que diseñes mediante un código de programación.

2.5 Menú

Un menú es una serie de opciones que el usuario puede elegir para realizar determinada tarea. Los menús están contenidos en una barra de menú, la cuál se puede decir que es una propiedad que tienen las ventanas para poseer menús, esto es porque la barra de menú en sí misma no es una ventana como lo puede ser un botón de comando o un cuadro de texto, pero tampoco es una barra de herramientas, sino un objeto contenedor de otros menús.

En C# podemos emplear estos menús de forma que la aplicación tenga mas opciones para realizarse, ademas de compactar el espacio, ya que lo que podrían ser botones, en un menú son solo pestañas que en el formulario no ocupan gran cantidad de espacio.

CONTROLES COMUNES

Button: El control Button de Windows Forms permite al usuario hacer clic en él para ejecutar una acción. El control Button puede mostrar tanto texto como imágenes. Cuando se hace clic en el botón, da la sensación de que se ha presionado y soltado.




CheckBox: El componente CheckBox de C# permite seleccionar una opción al usuario del programa o tomar una decisión, directamente en pantalla.




CheckedListBox: El control CheckedListBox de formularios Windows Forms muestra una lista de elementos, como el control ListBox y también puede mostrar una marca de verificación junto a los elementos de la lista.




ComboBox: El control ComboBox de Windows Forms se utiliza para mostrar datos en un cuadro combinado desplegable. De forma predeterminada, el control ComboBox aparece en dos partes: la parte superior es un cuadro de texto que permite al usuario escribir un elemento de la lista. La segunda parte es un cuadro de lista que muestra una lista de elementos, de los cuales el usuario puede seleccionar uno.




DateTimePicker: El control DateTimePicker de Windows Forms permite al usuario seleccionar un solo elemento de una lista de fechas y horas. Cuando se utiliza para representar una fecha, aparece en dos partes: una lista desplegable con una fecha representada como texto y una cuadrícula, que aparece al hacer clic en la flecha hacia abajo que se encuentra junto a la lista.




Label: El objeto Label se encuentra en nuestra barra de herramientas por lo regular esta en la parte izquierda de nuestra pantalla, este elemento se usa para mostrar letreros o etiquetas en nuestro formulario.
LinkLabel: El control LinkLabel de formularios Windows Forms permite agregar vínculos de estilo Web a aplicaciones de Windows Forms. Puede utilizar el control LinkLabel para todo aquello para lo que pueda utilizar el control Label. También puede establecer parte del texto como un vínculo a un objeto o una página Web.




 ListBox : El control ListBox permite a los usuarios seleccionar uno o varios elementos de una lista predefinida. Se diferencia de un control DropDownList en que puede mostrar varios elementos a la vez y, de manera opcional, permite que el usuario pueda seleccionar varios elementos.




ListView: El control ListView proporciona la infraestructura necesaria para mostrar un conjunto de elementos de datos en distintos diseños o vistas. Por ejemplo, un usuario puede desear mostrar los elementos de datos en una tabla y también ordenar sus columnas.




MaskedTextBox: Utiliza una máscara para distinguir entre los datos proporcionados por el usuario correctos e incorrectos.




MonthCalendar: El control MonthCalendar de Windows Forms muestra una intuitiva interfaz gráfica de usuario para que los usuarios vean y establezcan información relativa a fechas. El control muestra una cuadrícula que contiene los días numerados del mes actual, organizados en columnas bajo los días de la semana. Para seleccionar un mes diferente, puede hacer clic en los botones de fecha a los lados de la leyenda del mes. A diferencia del control DateTimePicker, de apariencia similar, con este control es posible seleccionar un intervalo de fechas; sin embargo, el control DateTimePicker le permite establecer horas y fechas.





NotifyIcon: El componente NotifyIcon de formularios Windows Forms muestra iconos en el área de notificación de estado de la barra de tareas para procesos que se ejecutan en segundo plano y que, de otro modo, no tendrían interfaz de usuario. Un ejemplo sería un programa de protección antivirus al que se puede tener acceso si se hace clic en un icono situado en el área de notificación de estado de la barra de tareas.




NumericUpDown: El control NumericUpDown de formularios Windows Forms es similar a una combinación de un cuadro de texto y un par de flechas en las que el usuario puede hacer clic para ajustar un valor. El control muestra y establece un valor numérico único a partir de una lista de opciones. Para incrementar y reducir el número, el usuario puede hacer clic en los botones hacia arriba y hacia abajo, presionar las teclas de dirección ARRIBA y ABAJO, o escribir un número. Al presionar la tecla de dirección ARRIBA, se mueve hacia arriba hacia el valor máximo; al presionar la tecla de dirección ABAJO, la posición se mueve hacia el valor mínimo. Un ejemplo donde puede ser útil este tipo de control es el control de volumen de un reproductor de música. Los controles numéricos de flechas se utilizan en algunas aplicaciones del Panel de control de Windows.





PictureBox: Representa un control de cuadro de imágenes de Windows para mostrar una imagen.





ProgressBar: Representa un control de barra de progreso de Windows.




RadioButton: Permite al usuario seleccionar una única opción de un grupo de opciones cuando está emparejado con otros controles de RadioButton.




RichTextBox: El control RichTextBox de Windows Forms se utiliza para mostrar, escribir y manipular texto con formato. El control RichTextBox hace todo lo que realiza el control TextBox, pero además puede efectuar las siguientes operaciones: mostrar fuentes, colores y vínculos; cargar texto e imágenes incrustadas desde un archivo; deshacer y rehacer operaciones de edición; y buscar caracteres especificados.




TextBox: Los cuadros de texto de formularios Windows Forms se utilizan para obtener entradas del usuario o para mostrar texto. El control TextBox se utiliza generalmente para el texto que se puede editar, aunque también puede configurarse como control de sólo lectura. Los cuadros de texto pueden mostrar varias líneas, ajustar el texto al tamaño del control y agregar formato básico. El control TextBox permite un único formato para el texto que se muestra o escribe en el control.




ToolTip: Representa una pequeña ventana emergente rectangular que muestra una breve descripción del propósito de un control cuando el usuario sitúa el puntero sobre el control.




TreeView: El control TreeView proporciona una manera de mostrar información en una estructura jerárquica con nodos contraíbles. En este tema se presentan los controles TreeView y TreeViewItem y se proporcionan ejemplos sencillos de su uso.





WebBrowser: Permite al usuario navegar por las páginas Web dentro del formulario.


PROGRAMAS DE EJEMPLO

Conversor de Temperatura
Un pequeño programa pero bastante útil en ciertas áreas, como la Química podría ser un conversor de temperatura de grados celsius a grados fahrenheit, kelvin o rankine.

Para este pequeño programa necesitaremos componentes comunes, como Botones, Etiquetas y Cajas de Texto. En primer lugar crearemos un Windows Form en C#, en el cual estaremos trabajando a partir de ahora, en form creado deberá contener los siguientes componentes:




Una vez que tengamos la interfaz, nombraremos las cajas de texto dependiendo que tipo de grados se mostraran en el, y finalmente se implementara el código, que se mostrara a continuación:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ConversorTemperatura
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            float cent = float.Parse(this.GradosCent.Text);
            float fahr = ((cent * 9) / 5) + 32;
            this.Resultado.Text = fahr.ToString();

            double kel = (cent + 273.15);
            this.Kelvin.Text = kel.ToString();

            double rank = ((cent * 1.8) + 491.67);
            this.Rankine.Text = rank.ToString();
        }

        private void button2_Click(object sender, EventArgs e)
        {

            Close();
        }

        private void label3_Click(object sender, EventArgs e)
        {

        }
    }
}

Una vez teniendo el código implementado, que como podrán observar es bastante simple, únicamente agregando las operaciones en el evento de botón Convertir y automáticamente mostrara la conversión a cualquiera de los grados en la aplicación.

Aquí una pequeña pantalla de demostración del programa:




Este fue una aplicación muy sencilla, enseguida pondremos el enlace para descargar la aplicación para que se pueda examinar con mas detenimiento.



Activación de Botones
Para esta aplicación simple, en la cual lo único que se hará, es mediante un CheckBox activar y desactivar un botón que muestra un mensaje en un TextBox, para ello necesitaremos un form que incluya lo que se muestra enseguida:




En este form se pueden observar, un CheckBox, dos Buttons, un TextBox y un StatusStrip.
Una vez que tengan el form tal cual se ve en la imagen anterior procederemos a mostrar el código de la aplicación:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _001.Ejemplo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Do_checked();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = "Botón Activado";
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            Do_checked();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }
        private void Do_checked()
        {
            button1.Enabled = checkBox1.Checked;
        }
        private void Hover(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Muestra el mensaje";
        }
        private void Hover2(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Finaliza la aplicación";
        }
        private void Salida(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Iniciado";
        }
    }
}

Como se puede observar en el código, lo que hace activar y desactivar el botón mediante el CheckBox, es el método creado llamado Do_Checked():

private void Do_checked()
        {
            button1.Enabled = checkBox1.Checked;
        }

Este método realiza la acción de activar el botón cuando el CheckBox este marcado.

Otra parte importante es el uso de los StatusStrip, para ello se necesita crear un metodo que permita mostrar texto en el StatusStrip en el momento que el puntero pase sobre los botones, el metodo para cuando el puntero este posicionado en el boton es el siguiente:

private void Hover(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Muestra el mensaje";
        }

Esto al momento de agregar en propiedades del botón, MouseHover y seleccionamos el método, automáticamente realizara la acción.



Para la salida del puntero del botón es el siguiente método:

private void Salida(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Iniciado";
        }

Este método hará que al momento de quitar el puntero del botón regrese el texto del StatusStrip al original cuando inicia la aplicación, y de la misma manera se modifica la propiedad MouseLeave y seleccionar el método de salida para realizar la acción.




Mostramos unas pantallas del resultado de la aplicación:







Se puede observar como se activa el botón con el CheckBox y como se muestre el mensaje en el StatusStrip.

Aquí dejamos el proyecto para que lo analicen: