Developer's Diary

22 septiembre, 2010

Curso C# – Controles Básicos I

Buenas a todos, durante este curso vamos a ver algunos de los controles básicos que normalmente se usan en una aplicación de C#. Aunque la intención es poder verlo de la manera más extendida posible, si es cierto que tampoco vamos a mostrar todo lo que pueden hacer los controles, si no más bien, lo esencial.

Veamos más después del salto.

Existen multitud de controles dentro de .Net y muchos más que se pueden obtener de la red de redes, además podemos construir los nuestros propios integrando aún más funcionalidad a nuestra aplicación.

El curso se va a dedicar a hablar de los siguientes controles:

– Button

– CheckBox

– ComboBox

– DateTimePicker

– Label

– ListBox

– PictureBox

– ProgressBar

– TextBox

– Contenedores

– Cuadros Dialogo.

Esta parte del curso se divirá en tres partes, en la primera hablaremos de los aspectos generales, en la segunda hasta el control ListBox y en la tercera hablaremos del resto.

Antes de comenzar a hablar de los distintos controles tenemos antes que hablar de las funcionalidades básicas de los mismos. Un control no deja de ser una clase, con propiedades visuales y cuando lo mostramos por la ventana, es un objeto. Este objeto posee, como puede poseer cualquier control propiedades, métodos y eventos.

Las propiedades serán los distintos valores que contendrán nuestros objetos, hay algunos que son comunes, como son las propieades visuales y el nombre de instanciación de objeto, también existen otros propios de cada controles o que coinciden entre controles.

Los métodos también pueden ser comunes entre los controles y otros de ellos son propios. La mayoría de métodos de un control no nos valdrán apenas para nada dentro de nuestra aplicación.

Finalmente los eventos, son la capacidad más útil dentro de un control. Un evento permite a nuestro objeto comunicarse con el resto de la aplicación, los eventos están pendientes en todo momento y se comunican con la aplicación en el momento que suceden, hay una pequeña explicación en el foro de como crear nuestros propios eventos, cuando generas tu propio evento entiendes la funcionalidad de los mismos y llegas a una comprensión mayor de los mismos.

Todos los controles, heredan de Control y control a su vez de Object, por lo que tenemos todas las funcionalidades de ambas clases.

Vamos a comenzar a ver cada uno de los controles más comunes, uno por uno, para que puedas sacarle el máximo partido y puedes generar una aplicación rica.

Propiedades,Métodos y Eventos Generales

Antes de comenzar a ver los controles uno por uno, es necesario ver algunos valores comunes para no tener que repetirlos posteriormente.

Dentro de las propiedades tenemos:


BackColor

Con esta propiedad podemos modificar el color del control a cualquiera que deseemos, hay bastantes predifinidos pero podemos incluir los nuestros propios. Dentro de la paleta de colores se encuentra el color Transparent, realmente este control toma el color del contenedor en el que se encuentra, obtener la transparencia total dentro de Winforms es más complicado de lo que parece, ya lo explicaremos en otro post. Existen ciertos controles que no pueden tomar esta propiedad.

Name

Name es el nombre que va a obtener el objeto, tenemos pensar que este nombre es como cuando se nombra a una variable o un objeto. Debemos darle un nombre comprensible y que nos permita identificarlo rápidamente para evitar problemas en la posterior programación. En ocasiones, en ciertas ventanas podemos tener gran cantidad de controles en pantalla y una mala nomenclatura nos puede generar más de un dolor de cabeza.

Left / Rigth / Top / Bottom

Estas propiedades nos permiten conocer la localización del control en la ventana, tanto Bottom y Rigth son propiedades de solo lectura. Por lo que no podemos modificarla. Esto nos permite modificar las dos restantes, Left que es izquierda y Top, que es hacía arriba. Si quisieramos desplazar tales controles hacia el lado contrario de la ventana, solo tendríamos que restar el valor. De esa manera la propiedad Left decrementaria y eso implica que se aumentaria la otra.

Height y Width

Si las anteriores propiedades nos permitían controlar el desplazamiento del control, con estas dos podemos modificar el alto del control (height) y el ancho(Width)

Dock


Otra propiedad visual que nos permite anclar nuestro control al contenedor en el que se esta encontrando. Podemos anclarlo a uno de los lados de la ventana o usar la propiedad fill, que se ensanchara hasta ocupar toda la posición. Lo interesante de asignar un valor en la propiedad Dock es que cuando modificamos el tamaño del contenedor también se modificara del objeto que se incluya y este asignado algún valor en esa propiedad.

Enabled
Un control puede tener varios tipos de estados, un grupo de estados es el Enabled(Permitido) al ser un booleano, tenemos un dos estados. True permitido y cuando esta en False, el control esta deshabilitado. El aspecto del control es diferente cuando asignamos el valor false a cualquier control a uno grisaceo.

Location

Si hace un momento comentábamos las cuatro propiedades left, rigth, top, bottom. Location nos devolverá un valor X y otro Y. Que corresponderá a la posición del control dentro de su contenedor. Tenemos que tener en cuenta que la posición 0,0 Corresponde a la esquina superior izquierda. Esta propiedad podemos modificarla sin ningún tipo de problema.

TabIndex

Esta propiedad indicará el orden de obtener el foco dentro de una ventana cuando pulsamos la tecla TAB, el valor O será el primero, cuando dos controles tengan el mismo valor de TabIndex será el control más proximo el que obtenga el foco.

Text

Esta propiedad que se encuentra en muchos de los controles que vamos a estudiar, simplemente nos permite mostrar el texto en pantalla. Por ejemplo dentro de un botón o un textbox.  Dentro del textbox, la propiedad text tiene una gran repercusión. Ya que es el texto que puede escribir el usuario.

Visible

Finalmente la propiedad visible, es la propiedad que nos permitiría modificar el estado de visibilidad del control, al igual que la propiedad Enabled. Se trata de un booleano, siendo false invisible y true visible.

Dentro de los métodos comunes tenemos los siguientes:

BringToFront / SendToBack
Mediante estos dos métodos, podemos controlar el eje Z que corresponderá a la profunidad del formulario. Pudiendo tener un control por debajo de otro. Mediante estos métodos podremos mandarlo al final del eje Z o al prinicipio para que sea mostrado.

El eje Z funciona de una manera similar como funciona dentro de un documento Word. Dentro de un documento podemos enviar al fondo o al frente, dentro de la programación en WinForms ocurre igual. El orden dentro del eje Z inicial, será igual a los controles que vayan siendo añadidos. Siendo el último control el que se encuentre por encima de los restantes.

Dispose

Aunque este método, no debemos usarlo principalmente. Ya que .Net controla gran parte de los valores en memoria. El método Dispose nos permite liberar la memoria de ese objeto destruyéndolo. Evidentemente, siempre que hagamos tal llamada no podremos posteriormente continuar haciendo uso del mismo.

Focus

Otra de las caracteristicas importantes dentro de la programación en ventana, es el foco. Cuando un control se encuentra seleccionado, se dice que posee el foco. Este solo puede pertenecer a un objeto a la vez, por lo tanto no podemos tener dos objetos seleccionados. Un ejemplo práctico para saber exactamente de que manera se comporta el foco, es seleccionando dentro de un control un cuadro de texto (TextBox) Cuando cliquemos sobre él, principalmente recibirá el foco y por lo tanto podremos ver el cursor seleccionado. En ese momento el objeto tendrá el foco, en otras ocasiones se puede comprobar como un objeto recibe el foco cuando se encuentra iluminado o seleccionado.

Mediante Focus obtendremos el foco en el objeto donde se haya llamado el método.

Hide / Show

No solo podemos ocultar nuestros controles, mediante la propiedad Visible, también lo podemos hacer llamanod a tal método. El segundo método, Show, no solo nos permitirá mostrar los controles que se hayan ocultado con el primer método. Si no que también mostrarlos por primera vez, cuando son creados, los objetos se encuentran ocultos y solo se mostrarán si ejecutamos el método Show.

La propiedad visible del control, también se verá modificada cuando se use estos métodos, siendo el valor False cuando usemos el método Hide y Show devolverá la propiedad a True.

Refresh / Update

Estos dos métodos nos permiten redibujar el control en cuestión, en ocasiones para una mejor visualización, si estamos modificando visualmente por código el control, puede ser recomendable forzar al control a que se repinte. Estos dos métodos obligan al control a redibujarse.

Dentro de los eventos, los más comunes son:

Antes de comentar los eventos comunes, debemos tener en cuenta que todos los eventos que corresponden a los controles poseen dos objetos en su llamada: el sender y el handler.

Sender es un objeto de tipo objeto, este corresponde al objeto que ha realizado la llamada del evento, por lo cual podemos hacer multiples funcionamientos para un evento dependiendo del control que procedió. El segundo parametro es e. Mediante este objeto podemos tener el control de lo ocurrido dentro del evento. Cosas tales como el funcionamiento del ratón, las teclas pulsadas u otros parametros.

BackColorChanged

Nos permite controlar el evento cuando se realiza un cambio de color.

Click

Este evento salta cuando el control es pulsado con el ratón.

ControlAdded / ControlRemoved
Estos eventos saltan, cuando se añade un control a ese control, preferiblemente cuando se trata de un contenedor o cuando es removido.

Disposed

Cuando este evento haya saltado, implica que se lanzado el método Dispose del control. Comprobar en el evento cuando se haya liberado la memoria es en cierta parte importante, debido a que podemos tener controles que hayan sido liberados y queramos desencadenar algún otro tipo de tarea después de esto.

GotFocus

El control recibe el método y este evento salta para obtener el valor.

KeyDown / KeyPress / KeyUp

Estos tres eventos corresponden cuando una tecla es pulsada(KeyDown) y también (KeyPress) , el tercer evento (KeyUp) ocurre cuando se ha levantado el dedo de la tecla pulsada. Mediante KeyDown y KeyUp. Lo interesante de estos tres eventos es que podemos controlar en todo momento que teclas fueron pulsadas, pudiendo reconocer el caracter que fue pulsado.

LostFocus

Si GotFocus era el encargado de ocurrir cuando se obtenía el foco, este segundo evento es cuando el control pierde el foco.

MouseClick / MouseDoubleClick / MouseDown / MouseUp / MouseEnter / MouseHover / MouseMove / MouseWheel

Estos ocho eventos se refieren a los eventos que pueden ser llamados desde los distintos controles, MouseClick y MouseDoubleClick permiten controlar cuando se ha producido un click o dos. MouseDown y MouseUp, se refieren a cuando se pulsa y se suelta el botón del ratón.

Cuando entramos con el puntero dentro de un control, produciremos un evento de MouseEnter y cuando salimos del mismo, el evento que saltará será MouseHover. Cuando el evento es MouseMove se refiere al movimiento del cursor dentro del control.

Finalmente el evento MouseWheel es cuando la rueda del ratón se mueve dentro del control.

Paint

El control cuando es pintado, produce este evento.

TextChanged

Cuando la propiedad de Text es modificada, se produce este evento.

Hasta aquí hemos llegado hasta el final de este última parte del curso. En la siguiente entrega mostraremos el conjunto de los primeros controles. No obstante, la mejor manera de aprender todas las posibles funcionalidades del control es haciendo pruebas con los controles en cuestión.

Debemos tener en cuenta que todo lo que veamos en Windows podemos hacerlo en nuestra aplicaciones, nuestra limitación es nula, en este sentido.

Saludos.


Anuncios

3 comentarios »

  1. […] AM Continuamos con el siguiente capitulo de los controles basicos para winforms. En la anterior entrega, veíamos las principales caracteristicas dentro de los controles que son propiedades, métodos y […]

    Pingback por Curso C# – Controles Básicos II « Developer's Diary — 23 septiembre, 2010 @ 7:59 AM

  2. […] Si has llegado ahora y no has visto las dos entregas anteriores puedes acceder a la primera desde aqui y a la segunda desde […]

    Pingback por Curso C# – Controles Basicos III « Developer's Diary — 21 octubre, 2010 @ 7:14 AM

  3. […] – Nuestra primera aplicación de ventana. – Estructuras de control. – Estructuras de repetición. – Manejo de los controles básicos I , II , III. – Varios formularios – Tipos de datos. – Creación de clases. – Creación de clases II. […]

    Pingback por Curso C# « Developer's Diary — 3 enero, 2011 @ 7:31 AM


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: