Developer's Diary

21 octubre, 2010

Curso C# – Controles Basicos III

Finalmente llegamos a la ultima entrega de controles basicos, para tener una nocion de lo que podemos hacer con ellos y poder usarlos en nuestras aplicaciones de WinForms. Si has llegado ahora y no has visto las dos entregas anteriores puedes acceder a la primera desde aqui y a la segunda desde aqui.

Como indicamos en la anterior entrega, en esta nos vamos a dedicar a unos controles al resto de controles que nos permitiran crear aplicaciones ricas y amigables para nuestros usuarios.

En esta ocasion hablaremos de los siguientes controles.

– PictureBox

– ProgressBar

– TextBox

– Contenedores

– Cuadros Dialogo.

Sin mas dilacion, comencemos a hablar de ellos:

PictureBox

Mediante el picturebox podremos introducir imagenes facilmente dentro de nuestras aplicaciones. Otro uso que le doy yo frecuentemente es generar botones con un diseño mas personalizado, ya que tenemos los eventos que ya comentamos anteriormente como puede ser MouseDown y MouseUp. Dentro de estos eventos podemos cambiar nuestras imagenes, permitiendonos realizar con un programa externo un boton que se modifique al pulsarlo.

Ademas de las frecuentes que poseen todos los controles debido a la herencia de Control tambien se incluyen:

– Image

Que nos permitira introducir cualquier tipo de imagen, tanto en diseño, como en ejecucion.

– SizeMode

Mediante esta propiedad tenemos la posibilidad de cambiar como se visualizara la imagen. Podemos elegir entre varias opciones, desde Zoom, Normal o StrechImage. Esta ultima propiedad nos permitira encajar nuestra imagen dentro del picturebox de esa manera, aunque atribuyamos una imagen grande al picturebox, se mantendra con el tamaño que le hayamos asignamo al control. Evitando de esa manera, tener que redimensionar nuestra imagen.

ProgressBar

Ya hablamos en otra ocasion de las barras de progreso. Respecto a este control nos permitira tener un control de un proceso. Sinceramente, para procesos largos, donde no nos interesa realizar un subhilo para que se ejecute, es completamente necesario, siempre y cuando queramos que nuestro usuario se sienta comodo.

Aunque parezca una tonteria, una barra de progreso bien situada, en procesos que normalmente pueden tardar mas de treinta segundos, pueden permitir que esa espera parezca mucho menor de lo que realmente resulta.

Su uso no es demasiado dificil, solo tenemos tener en cuenta dos propiedades y un metodo.

Las propiedades Minimum y Maximum, nos permitiran controlar los valores minimos y maximos respectivamente que tendra nuestro control.

Un uso correcto de estos dos valores, podria ser en un bucle, asignar a la propiedad Minimun el valor O y a la propiedad Maximum, el valor en el que vaya a finalizar nuestro bucle.

Posteriormente el metodo que habria que usar para incrementar el valor seria Increment. Mediante este metodo vamos incrementando nuestro valor de la barra de progreso que podemos comprobar con la propiedad Value.

En el ejemplo anterior dentro del bucle, podriamos usar la barra de progreso de la siguiente manera, pongo un pequeño ejemplo:

private void Ejemplo_Progreso()

{

progressbar1.Mimimum = 0;

progressbar1.Maximum = 10;

for(int i = 0; i < 10 ; i++)

{

//Hacer algo…

progressbar1.Increment(1);

}

}

De esta manera cada vez que terminemos un ciclo del bucle se incrementaria un peldaño de nuestra barra de progreso, hasta llegar al maximo.

TextBox

Si el boton era una de nuestras piedras angulares para el diseño de aplicaciones de escritorio, el cuadro de texto seria la otra. Ya que normalmente para ejecutar una interaccion por parte del usuario es necesario tambien que nos facilite algun tipo de parametro.

La propiedad MultiLine, es un valor booleano, que si se encuentra en true, nos permitira escribir mas de una linea en los mismos. De todas formas, si necesitamos de un texto mejor elaborado y donde tengamos mas funciones con el mismo, es mas recomendable usar el control RichTextBox.

Los metodos siguientes nos facilitaran la tarea con el trabajo de nuestros cuadros de texto.

– Copy

Nos permite copiar el texto incluido en el cuadro de texto, en el portapapeles.

– Cut

Cortamos el texto para introducirlo en el portapapeles.

– DeselectAll

Deseleccionamos todo el texto.

– Paste

Pegamos el texto que tengamos incluido en el portapeles.

– Select

Mediante ese metodo podremos seleccionar una parte del texto incluido dentro del cuadro de texto.

– SelectAll

Podremos seleccionar todo el texto incluido en el cuadro de texto.

– Undo

Al igual que al usar el Ctrl+Z, deshacemos nuestro ultimo paso en el cuadro de texto.

Finalmente, el evento TextChanged, nos sera de gran ayuda, ya que saltara cada vez que se modifique algo dentro del cuadro de texto.

Contenedores
Los contenedores es un grupo de controles que la unica tarea que poseenn es ordenar un poco la ventana que se va a encontrar el usuario y unificar cada uno de ellos en otro control.

A diferencia de otros controles que heredan desde Control, los controles de tipo contenedor heredan desde Container. Esto nos permite tener habilitada la propiedad Controls dentro de nuestro objeto, que se trata de una coleccion de tipo objects, donde se iran almacenando cada uno de los controles que hayamos agregado.

Las razones por las cuales debemos usar los contenedores dentro de nuestra aplicacion son varias. Primero, el correcto uso de los mismos nos permite tener una mayor comodidad a la hora de programar la vista de diseño en nuestra aplicacion. Si por ejemplo, marcamos la propiedad enabled de nuestro contenedor, todos los contenedores tomaran esa opcion, al igual con visible. Si modificamos la posicion del control o el tamaño, tambien se ven modificadas esas propiedades dentro del control.

En el punto de vista de unificar controles, dependiendo de las razones de nuestra aplicacion. Tambien resulta de gran utilidad. Si por ejemplo, tenemos controles para insertar y consultar unos datos, en un mismo formulario. Podriamos usar un panel para separar los controles que se encarguen de la primera tarea de la segunda. De esa manera, obtenemos una aplicacion mas ordenada y limpia para el usuario final.

Dentro de los contenedores tenemos un total de seis:  FlowLayoutPanel, GroupBox , Panel, SplitContainer, TabControl y TableLayoutPanel.

– FlowLayoutPanel y Panel.

Son dos controles identicos, se trata de un simple panel. Con una simple diferencia que sera la esencial para decantarnos por uno u otro.

El FlowLayoutPanel tiene una propiedad llamada FlowDirection, que nos permite indicar en que direccion se van a situar cada uno de los controles que vamos introduciendo. Sin embargo, en el caso del Panel conforme vayamos integrando los controles estos iran desordenados.

El uso de un control y otro se diferencia en la comodidad que queramos a la hora de diseñar nuestras ventanas.

Por el resto, es un simple contenedor. Sin ninguna propiedad adicional.

– GroupBox

Este contenedor, es muy similar al contenedor de Panel, pero en la parte superior se encuentra integrado un label, que nos permitira escribir un identificador.

Por el resto es exactamente igual. Para modificar esa etiqueta solo es necesario modificar la propiedad Text.

– SplitContainer.

Este contenedor, nos permite tener dos contenedores de tipo Panel dentro de nuestro formulario.

 

– TabControl

 

El tabcontrol es el control de pestañas que podemos tener en Windows. Vamos a explicar un poco más detenidamente este control, ya que contiene alguna cosa más que los anteriores contenedores.

El control Tabcontrol, es en si un contenedor de tabpage, digamos que cada tabpage, es una pestaña de nuestro tabcontrol y es ahí donde vamos a contener cada uno de nuestros controles. Por lo tanto tabcontrol es una colección de tabpages nada más.

 

Las propiedades de los distintos tabpages son independientes del tabcontrol. Las propiedades que podemos señalar dentro del tabcontrol son: Multiline y TabPages.

La primera propiedad nos permitirá tener varias líneas de pestañas, mientras que la segunda será nuestra colección con las distintas páginas que vamos a ir incluyendo.

 

Posteriormente, el control que realmente es el contenedor es el TabPage, las propiedades que nos podemos encontrar allí son las que podemos encontrar en cualquier otro control, la propiedad text será la que nos permita modificar el texto.

 

– TableLayoutPanel

 

Finalmente el tablelayoutpanel, se trata de un contenedor, que nos permite generar una tabla. Esta tabla pues nos dará distintas separaciones en la que ir incluyendo los controles. Si configuramos correctamente este tipo de contenedor, podemos tener nuestra aplicación visualmente marcada sin haber ningún tipo de cambio de posición.

 

Tras terminar de explicar los contenedores, vamos a hablar de los últimos controles de gran utilidad dentro de una aplicación de escritorio. Los cuadros de dialogo, son formularios, pregenerados por Windows que nos permiten distintas opciones propias de Windows, resultan de gran utilidad, ya que construir personalmente tales controles, puede resultar tedioso.

 

Aunque pueden arrastrarse como controles y soltarlos dentro de nuestro proyecto, resulta más recomendable generarlos por código cuando vayamos a usarlos. Solo necesitamos poner las siguientes líneas para generarlos por código:

 

OpenFileDialog open = new OpenFileDialog();

If(open.ShowDialog == DialogResult.OK)

{

//Realizamos lo que queremos

}

 

Como podemos ver en el ejemplo de código generamos el control y lo mostramos con un ShowDialog. Cuando usamos este método, el formulario se muestra en cuadro de diálogo por lo tanto será el único formulario con el que usuario podrá trabajar.

 

Los contenedores que existen son:

 

– ColorDialog

Es el cuadro de diálogo en el que podemos elegir los colores.

– FolderBrowserDialog

Para elegir una carpeta

– FontDialog

Para elección de fuentes.

– OpenFileDialog

Nos permite seleccionar ficheros.

– SaveFileDialog

Nos permite seleccionar una ubicación para ser salvado.

 

Las propiedades de los cuadros dialogo, son pocas. Por ejemplo, las que trabajan con ficheros solo tienen como propiedad filename, las de colordialog la selección de colores, etc.

Este tipo de controles nos dan una experiencia de usuario mayor.

 

Con esto, finalizamos todo lo que debemos saber respecto los principales controles de usuario, para aplicaciones de escritorio. Esta parte también la podemos extrapolar por ejemplo para aplicaciones de Windows Mobile. Ya que los controles que se pueden utilizar son similares.

 

Si teneis alguna duda respecto a los controles, solo debeis preguntarlo mediante un comentario. ¿Pensais que hay algún control más digno de mencionar como esencial en vuestras aplicaciones?

 

Saludos!

Anuncios

1 comentario »

  1. […] – 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. – Control […]

    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: