controles mas habituales leidy cita

27

Upload: rokr02

Post on 14-Jul-2015

1.083 views

Category:

Documents


3 download

TRANSCRIPT

Una vez creado un proyecto, o después de añadir un nuevo formulario, para utilizar controles en el Mismo, tendremos que tomarlos de la ventana Cuadro de herramientas disponible en el IDE de VB.NET, y añadirlos al formulario.

Para añadir un control en el formulario, proceso que también se conoce como dibujar un control, debemos seleccionar primeramente el control a utilizar de la lista que aparece en el cuadro de herramientas. Una vez localizado el control, haremos doble clic sobre él, o pulsaremos [INTRO], lo que añadirá una copia del mismo en el formulario, que después, mediante el ratón o teclado, situaremos en la posición adecuada. Otra técnica, esta más habitual, consiste en hacer clic sobre el control, situar el cursor del ratón en la superficie del formulario y hacer clic en él, arrastrando hasta dar la forma deseada; de esta manera, proporcionamos al control en un solo paso la ubicación y tamaño iníciales. Dibujemos, a modo de práctica, un control Button sobre el formulario, con un aspecto similar al mostrado en la Figura 226.

La cuadrícula de diseño del formulario, consiste en el conjunto de líneas de puntos que surcan la superficie del formulario, y nos sirven como ayuda, a la hora de realizar un ajuste preciso de un control en una posición determinada. Si el lector ya ha realizado algunas prácticas situando controles en el formulario, se percatará de que cuando movemos un control con el ratón, dicho control se ajusta a la cuadrícula obligatoriamente, por lo que no podemos ubicarlo entre dos líneas de puntos de la cuadrícula. Para solventar este problema tenemos algunas soluciones que proponemos a continuación: La más simple y directa, consiste en acceder a la ventana de propiedades del formulario, y en la propiedad GridSize, cambiar los valores de espaciado de puntos que tiene la rejilla. Cuanto menor sea ese valor, más junta estará la trama de puntos de la rejilla, con lo que podremos ajustar de forma más exacta el control. Este ajuste es válido sólo para el formulario sobre el que lo aplicamos. Probemos por ejemplo, a introducir 5 en cada valor, como muestra la Figura 227.

Cuando tenemos un grupo numeroso de controles en el formulario, que necesitamos mover de posición, o cambiar su tamaño, para redistribuir el espacio; podemos optar por cambiar uno a uno los controles, tarea pesada y nada aconsejable; o bien, podemos seleccionar todos los controles a modificar, y realizar esta tarea en un único paso, mediante las opciones del menú Formato del IDE. Supongamos que en el formulario tenemos dos controles Button y un Listbox distribuidos como muestra la Figura 229.

Este control representa un botón de pulsación, conocido en versiones anteriores de VB como:

CommandButton: Entre el nutrido conjunto de propiedades de este control, destacaremos las siguientes.

Text: Cadena con el título del botón.

TextAlign: Alineación o disposición del título dentro del área del botón; por defecto aparece centrado.

BackColor: Color de fondo para el botón. Cursor. Permite modificar el cursor del ratón que por defecto tiene el botón.

Image: Imagen que podemos mostrar en el botón como complemento a su título, o bien, en el caso de que no asignemos un texto al botón, nos permitirá describir su funcionalidad.

ImageAlign: Al igual que para el texto, esta propiedad nos permite situar la imagen en una zona del botón distinta de la central, que es en la que se ubica por defecto.

BackgroundImage: Imagen de fondo para el botón.

FlatStyle: Tipo de resaltado para el botón. Por defecto, el botón aparece con un cierto relieve, que al ser pulsado, proporciona el efecto de hundirse y recuperar nuevamente su estado, pero podemos, mediante esta propiedad, hacer que el botón se muestre en modo plano, con un ligero remarcado al pulsarse, etc. Font. Cambia el tipo de letra y todas las características del tipo elegido, para el texto del botón. La Figura 237 muestra un ejemplo de control Button, sobre el que se han modificado algunos valores por defecto de sus propiedades.

Windows es un sistema operativo orientado a eventos, por lo que cualquier mínima interacción que realicemos sobre un formulario o control, generará el oportuno evento, para el que si estamos interesados, deberemos responder. Prosiguiendo con el control Button, cuando pulsamos sobre el mismo, se origina el evento Click de dicho control. Si dibujamos un Button en un formulario y pulsamos en él, no ocurrirá nada, ya que aunque el evento se produce, no existe código que le proporcione respuesta. Para dar oportuna respuesta a un evento emitido por un control, debemos escribir un procedimiento manipulador del correspondiente evento.

La creación de manipuladores de evento es un aspecto que ya hemos

visto en detalle en el tema Delegación de código y eventos. De igual modo, los aspectos básicos de la escritura de código para un evento se comentaron en el tema Una aplicación con funcionalidad básica; sugerimos por lo tanto al lector, la consulta de estos temas para cualquier referencia básica que necesite al respecto. No obstante, en el presente apartado, y para reforzar conceptos, realizaremos un repaso del proceso de creación del manipulador de evento para un control. Como ejemplo, insertaremos en un formulario un control Button, al que daremos el nombre btnMensaje, y en su propiedad Text asignaremos la cadena Mostrar mensaje. Seguidamente haremos doble clic sobre el Button; esta acción abrirá la ventana del editor de código, creando al mismo tiempo, la declaración o esqueleto del procedimiento manipulador de evento Click del botón, listo para ser codificado.

Ya que necesitamos que se muestre un mensaje al ser pulsado este control, utilizaremos el objeto MessageBox de la plataforma, llamando a su método compartido Show( ), para visualizar el mensaje. En definitiva, el manipulador de este evento quedaría como muestra el Código fuente 438. Private Sub btnMensaje_Click( By Val sender As System.Object, ByVal.AsSystem.EventArgs) Handles btnMensaje.Click MessageBox.Show("Se acaba de pulsar el botón del formulario") End Sub Código fuente 438. El resultado en ejecución, sería el que muestra la Figura 238. Observando con más detalle el procedimiento del evento, vemos que al final de su declaración, aparece la palabra clave Handles, que como vimos en el tema sobre eventos, nos sirve para asociar esta rutina de código con un evento de un objeto. En el ejemplo que nos ocupa, asociamos el procedimiento btnMensaje_Click( ), con el evento Click del objeto btnMensaje, perteneciente a la clase Button.

De modo estático. Esto requiere que en el código, el identificador que contenga el objeto del control, deba ser declarado con ámbito a nivel de clase, y utilizando además la palabra clave WithEvents. Dicha tarea es realizada automáticamente por el diseñador del formulario cuando genera el código del mismo. Veamos en el Código fuente 439, el fragmento de código generado por el diseñador que realiza esta labor. ' esta declaración es situada a nivel del código ' de la clase del formulario, es decir, ' fuera de cualquier método Friend WithEvents btnMensaje As System.Windows.Forms.Button

El control Label o Etiqueta, muestra un texto informativo al usuario. Podemos utilizar este control como complemento a otro control, por ejemplo, situándolo junto a un TextBox, de modo que indiquemos al usuario el tipo de dato que esperamos que introduzca en la caja de texto. Programación con Visual Basic .NET Se trata de un control estático; esto quiere decir que el usuario no puede interaccionar con él, a diferencia, por ejemplo, de un control Button, sobre el que sí podemos actuar pulsándolo; o de un TextBox, en el que podemos escribir texto. Una de sus propiedades es BorderStyle, que permite definir un borde o recuadro alrededor del control, o que dicho borde tenga un efecto 3D; por defecto se muestra sin borde. Veamos unos ejemplos en la Figura 243.

Foco de entrada Para que las pulsaciones de teclado puedan ser recibidas por un determinado control, dicho control debe tener lo que se denomina el foco de entrada. El modo de dar a un control el foco de entrada, consiste en hacer clic sobre él, o bien, pulsar la tecla [TAB], pasando el foco hasta el control deseado. Cuando un control recibe el foco, el sistema operativo lo remarca visualmente o en el caso de controles de escritura, muestra el cursor de escritura en su interior.

Un control TextBox muestra un recuadro en el que podemos introducir texto. Para poder escribir texto en un control de este tipo, debemos darle primeramente el foco, lo que detectaremos cuando el control muestre el cursor de escritura en su interior. Entre las propiedades disponibles por este control, destacaremos las siguientes.

Text: Cadena con el texto del control.

Multilin: Permite establecer si podemos escribir una o varias líneas. Por defecto contiene False, por lo que sólo podemos escribir el texto en una línea.

WordWrap: En controles multilínea, cuando su valor es True, al llegar al final del control cuando estamos escribiendo, realiza un desplazamiento automático del cursor de escritura a la siguiente línea de texto.

Enabled: Contiene un valor lógico mediante el que indicamos si el control está o no habilitado para poder escribir texto sobre él.

ReadOnly: Permite indicar si el contenido del control será de sólo lectura o bien, podremos editarlo.

CharacterCasing: Esta propiedad, permite que el control convierta automáticamente el texto a mayúsculas o minúsculas según lo estamos escribiendo.

MaxLength.: Valor numérico que establece el número máximo de caracteres que podremos escribir en el control.

PasswordChar: Carácter de tipo máscara, que será visualizado por cada carácter que escriba el usuario en el control. De esta forma, podemos dar a un cuadro de texto el estilo de un campo de introducción de contraseña. AutoSize:Cuando esta propiedad tenga el valor True, al modificar el tamaño del tipo de letra del control, dicho control se redimensionará automáticamente, ajustando su tamaño al del tipo de letra establecido. La Figura 244 muestra un formulario con varios controles TextBox, a los cuales se han aplicado diferentes efectos mediante sus propiedades.

Los controles disponen de la propiedad TabIndex, que contiene un número que será utilizado para pasar el foco entre ellos al pulsar la tecla [TAB] durante la ejecución del programa. Según vamos añadiendo nuevos controles, el IDE va asignando automáticamente nuevos números a esta propiedad; de forma que, cuando comencemos la ejecución, el primer control que tomará el foco será el que tiene el menor número en su TabIndex. En el ejemplo anterior, el primer control que tomaba el foco era el TextBox de la contraseña, lo cual no era nada lógico, ya que dicho control era el último en el formulario para el que debíamos introducir datos.

Para solucionar este problema, simplemente tenemos que cambiar

los valores de la propiedad TabIndex de los controles, de modo que el orden de tabulación sea el que mejor se adapte a nuestras necesidades. Podemos obtener un mapa del orden de tabulación de los controles del formulario seleccionando el menú del IDE Ver + Orden de tabulación; esto mostrará los controles con el número de TabIndex que les hemos asignado. Como ventaja adicional, en esa situación, podemos hacer clic en los controles y cambiar también el número de tabulación. Ver Figura 245.

La selección de texto en un control TextBox es un proceso que funciona de modo transparente al programador, en el sentido en que este no necesita añadir código adicional para las operaciones de selección, cortar, copiar, etc., al ser tareas integradas en el sistema operativo. Sin embargo, podemos necesitar en un determinado momento, tener información acerca de las operaciones de selección que está realizando el usuario en nuestros controles de texto. Para ello, el control TextBox dispone de las siguientes propiedades.

Este control muestra una casilla de verificación, que podemos marcar para establecer un estado. Generalmente el estado de un

CheckBox es marcado (verdadero) o desmarcado (falso), sin embargo, podemos configurar el control para que sea detectado un tercer estado, que se denomina indeterminado, en el cual, el control se muestra con la marca en la casilla pero en un color de tono gris. Las propiedades remarcables de este control son las siguientes.

Checked. Valor lógico que devuelve True cuando la casilla está marcada, y False cuando está desmarcada.

CheckState. Valor del tipo enumerado CheckState, que indica el estado del control. Checked marcado;

Unchecked, desmarcado; e Indeterminista, indeterminado.

ThreeState. Por defecto, un control de este tipo sólo tiene dos estados, pero asignando True a esta propiedad, conseguimos que sea un control de tres estados.

CheckAlign. Permite establecer de modo visual la ubicación de la casilla de verificación dentro del área del control. Como detalle destacable de las propiedades Checked y CheckState, si modificamos desde código sus valores, conseguiremos alterar el estado de la casilla del control. El ejemplo

CheckBoxPru, muestra un formulario con dos controles CheckBox. El control

chkPonColor asigna un color de fondo al formulario o restablece el color original. Esto lo conseguimos codificando el evento

CheckedChanged del control

Los controles RadioButton nos permiten definir conjuntos de

opciones autoexcluyentes, de modo que situando varios controles de este tipo en un formulario, sólo podremos tener seleccionado uno en cada ocasión. Vamos a crear un proyecto de ejemplo con el nombre RadioButtonPru, en el que situaremos dentro de un formulario, una serie de controles RadioButton y un TextBox, de modo que mediante los RadioButton cambiaremos el tipo de fuente y color del cuadro de texto. La Figura 249 muestra un diseño inicial del formulario.

Al ejecutar el proyecto, sin embargo, no podemos conseguir establecer simultáneamente un tipo de letra y color, puesto que al pulsar cualquiera de los botones de radio, se quita el que hubiera seleccionado

previamente.

Un control ListBox contiene una lista de valores, de los cuales, el usuario puede seleccionar uno o varios simultáneamente. Entre las principales propiedades de este control, podemos resaltar las siguientes. Items. Contiene la lista de valores que visualiza el control. Se trata de un tipo ListBox.ObjectCollection, de manera que el contenido de la lista puede ser tanto tipos carácter, como numéricos y objetos de distintas clases. Al seleccionar esta propiedad en la ventana de propiedades del control, y pulsar el botón que contiene, podemos introducir en una ventana elementos para el control. Ver Figura 251

• Sorted. Cuando esta propiedad contiene el valor True, ordena el contenido de la lista. Cuando contiene False, los elementos que hubiera previamente ordenados, permanecen con dicho orden, mientras que los nuevos no serán ordenados.

• IntegralHeight. Los valores de la lista son mostrados al completo cuando esta propiedad contiene True. Sin embargo, al asignar el valor False, según el tamaño del control, puede que el último valor de la lista se visualiza sólo en parte. La Figura 253 muestra un ListBox con esta propiedad a False.

MultiColumn. Visualiza el contenido de la lista en una o varias columnas en función de si asignamos False o True respectivamente a esta propiedad. • SelectionMode. Establece el modo en el que vamos a poder seleccionar los elementos de la lista. Si esta propiedad contiene None, no se realizará selección; One, permite seleccionar los valores uno a uno;

MultiSimple permite seleccionar múltiples valores de la lista pero debemos seleccionarlos independientemente; por último, MultiExtended nos posibilita la selección múltiple, con la ventaja de que podemos hacer clic en un valor, y arrastrar, seleccionando en la misma operación varios elementos de la lista. • SelectedItem. Devuelve el elemento de la lista actualmente seleccionado. • Selecteditems. Devuelve una colección ListBox.SelectedObjectCollection, que contiene los elementos de la lista que han sido seleccionados. • SelectedIndex. Informa del elemento de la lista seleccionado, a través del índice de la colección que contiene los elementos del ListBox. Para mostrar algunas de las funcionalidades de este control, utilizaremos el proyecto de ejemplo ListBoxPru. La Figura 254 muestra esta aplicación en ejecución.