Buscador

GroupBox

La Solución cols Problema planteado En El anterior Apartado Pasa porciones encerrar el los Conjuntos de CONTROLES RadioButton en la ONU el control GroupBox, agrupándolos ASI Funcionalidades POR. De this forma, añadiremos al Formulario dos GroupBox; en Uno situaremos los RadioButton Que informan del Tipo de Transporte, y en El Otro Los Que Indican el Tipo de Cliente. A partir de ESE Momento, Podremos select values ​​simultaneamente en Ambos Grupos, Como Muestra la Figura 151.
Figura 151. Uso de Controles GroupBox párr una organizadora RadioButton.

RadioButton

Los Controles RadioButton nep permiten Definir Conjuntos de opciones autoexcluyentes, de Modo de Que situando controles Varios de este pisos en la ONU UNO Seleccionado Tener Formulario, Podremos SÓLO en Ocasión Cada. Ya Que do Función es la de seleccionar Una Opción Entre VARIAS Posibles, las Propiedades de Este controlan Hijo muy Similares a las del CheckBox, Porción Lo Que no vamos a incidir especialmente en Ellas. Añadiremos sin nuestra EJEMPLO dos RadioButton Que nos permitan sable El Medio De Transporte utilizado Parr Llegar al Establecimiento, COMO Muestra la Figura 149.
Figura 149. Inserción de Controles RadioButton en el Formulario.
La ubicación realizada realizada de Controles RadioButton de esta Manera en el Formulario Tiene el pecado Pecado embargo Inconveniente, ya Que Si añadimos dos Nuevos Controles de este pisos, Parr Indicar si ESTAMOS ante la ONU compradora habitual o uno del del nuevo, de Los Cuatro RadioButton SÓLO Podremos Tener UNO Seleccionado en Momento Cada, COMO VEMOS en la Figura 150
Figura 150. Es SOLO seleccionar Posible pecado RadioButton.

CheckBox

Este control consiste en 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 Indeterminate, 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. Un detalle destacable de las propiedades Checked y CheckState, consiste en que si modificamos desde código sus valores, conseguiremos alterar el estado de la casilla del control. Como muestra para nuestro programa, añadiremos un CheckBox con el nombre chkCompra, para indicar si el cliente al que se realiza la encuesta, ha efectuado algún tipo de compra en el establecimiento. Ver la Figura 148.
Figura 148. Formulario incluyendo control CheckBox.

TextBox - III

En Cuanto a TextBox control de los eventos párr la ONU el, en este EJEMPLO Vamos a Codificar el Evento TextChanged, Que se produzca Cada Vez Que el texto escribe usuario en el control de el. El control de txtNombre de sueros de El codifiquemos Que, y vamos a utilizar para visualizar la CANTIDAD de caractères Escritos, el pecado Etiqueta de control de aire el Nombre lblNumLetras. Ver el Código fuente 387.

Private Sub Remitente txtNombre_TextChanged (ByVal COMO System.Object, _
ByVal e As System.EventArgs) Handles txtNombre.TextChanged
Me.lblNumLetras.Text = Me.txtNombre.Text.Length
End Sub
Código fuente 387
Al ejecutar el Programa, es el Sello del situado al Lado del TextBox, visualizaremos la CANTIDAD de texto Escrito, COMO Muestra la Figura 147.
Figura 147. El formulario mostrando el número de caracteres del TextBox.

TextBox - II

En el Formulario de our EJEMPLO vamos a introducir dos TextBox: El Primero, Con El Nombre txtNombre, lo usaremos párr ESCRIBIR el Nombre completo del Cliente; El Segundo, Con El Nombre txtObservaciones, Que configuraremos en Modo Multilínea, lo usaremos párr introducir Observaciones Diversas . Ver la Figura 146.
Figura 146. Incorporación de Controles TextBox al Formulario.

TextBox - I

El control TextBox Un representante de Una caja en La Que Podemos ESCRIBIR Una o Varias Líneas de texto, Segun configuremos suspensiones Propiedades. Para Poder Escribir texto en el control de la ONU de Este Tipo, debemos primeramente Darle el foco MEDIANTE Alguna de las Formas Estándar DISPONIBLES en Ventanas: Haciendo clic Sobre el control, o pulsando la Tecla [TAB]; muestre el control CUANDO el el cursor de escritura en do interior sabremos Que ACABA de Tomar El Foco Y PODEMOS ESCRIBIR en el. Entre las Propiedades DISPONIBLES porción Este control, destacaremos Las Siguientes. 
• Texto. Cadena Con El Texto del control.
• Multilínea. PODEMOS SI establecer Permite ESCRIBIR UNA O VARIAS Líneas. Por Defecto contains Falso, PODEMOS Solo Por Lo Que ESCRIBIR EL text in Una línea ahora. 
• WordWrap. En Controles Multilínea, Cuando do valor es cierto que al llegar Ver al final, del control de CUANDO ESTAMOS ESCRIBIENDO, Realiza sin Desplazamiento Automático del cursor de escritura a la siguiente línea de texto. 
• Habilitado. Contiene sin valor lógico MEDIANTE EL Que indicamos si no está el control de el o no Habilitado párrafo ESCRIBIR Poder Sobre Texto EL. 
• ReadOnly. Permite Indicar si el Contenido del control de sueros De Solo Lectura o bien, Podremos editarlo. 
• CharacterCasing. Propiedad Esta, permite el control de Que convierta automaticamente el Texto a Mayúsculas o Minúsculas según rubro lo ESTAMOS ESCRIBIENDO. 
• MaxLength. Valor numérico Que Establece El Número Máximo de Caracteres Que Podremos ESCRIBIR en el control de el. 
• PasswordChar. Carácter de pisos máscara, Que sera visualizado porción CADA Carácter Que Escribá el usuario en el control de el. De this forma, PODEMOS DAR una ONU Cuadro de texto el Estilo de la ONU campo de Introducción de CONTRASEÑA. 
El control TextBox Un representante de Una caja en La Que Podemos ESCRIBIR Una o Varias Líneas de texto, Segun configuremos suspensiones Propiedades. Para Poder Escribir texto en el control de la ONU de Este Tipo, debemos primeramente Darle el foco MEDIANTE Alguna de las Formas Estándar DISPONIBLES en Ventanas: Haciendo clic Sobre el control, o pulsando la Tecla [TAB]; muestre el control CUANDO el el cursor de escritura en do interior sabremos Que ACABA de Tomar El Foco Y PODEMOS ESCRIBIR en el. Entre las Propiedades DISPONIBLES porción Este control, destacaremos Las Siguientes. • Texto. Cadena Con El Texto del control. • Multilínea. PODEMOS SI establecer Permite ESCRIBIR UNA O VARIAS Líneas. Por Defecto contains Falso, PODEMOS Solo Por Lo Que ESCRIBIR EL text in Una línea ahora. • WordWrap. En Controles Multilínea, Cuando do valor es cierto que al llegar Ver al final, del control de CUANDO ESTAMOS ESCRIBIENDO, Realiza sin Desplazamiento Automático del cursor de escritura a la siguiente línea de texto. • Habilitado. Contiene sin valor lógico MEDIANTE EL Que indicamos si no está el control de el o no Habilitado párrafo ESCRIBIR Poder Sobre Texto EL. • ReadOnly. Permite Indicar si el Contenido del control de sueros De Solo Lectura o bien, Podremos editarlo. • CharacterCasing. Propiedad Esta, permite el control de Que convierta automaticamente el Texto a Mayúsculas o Minúsculas según rubro lo ESTAMOS ESCRIBIENDO. • MaxLength. Valor numérico Que Establece El Número Máximo de Caracteres Que Podremos ESCRIBIR en el control de el. • PasswordChar. Carácter de pisos máscara, Que sera visualizado porción CADA Carácter Que Escribá el usuario en el control de el. De this forma, PODEMOS DAR una ONU Cuadro de texto el Estilo de la ONU campo de Introducción de CONTRASEÑA. • AutoSize. De Cuando this Propiedad del tenga el valor verdadero, al Modificar el pelotas del Tipo de letra del control, control DICHO sí redimensionará automaticamente, ajustando do no molestar al del Tipo de Letra establecido.

Codificación de los eventos de controles - IV

El Codigo un ESCRIBIR párrafo this Evento consistirá en Tomar el control de btnSalir, y asignarle Una nueva Cadena una Propiedad Texto do. Para el Evento MouseLeave, el Proceso Sera exactamente Igual, Pero asignando a la Propiedad del texto el título Que inicialmente tenia el control de el. El Código fuente 386 Muestra Ambos procedimientos de Evento.

Private Sub remitente btnSalir_MouseEnter (ByVal como objeto, _
ByVal e As System.EventArgs) Handles btnSalir.MouseEnter
Me.btnSalir.Text = "¡¡SORPRESA!"
End Sub
Private Sub remitente btnSalir_MouseLeave (ByVal como objeto, _
ByVal e As System.EventArgs) Handles btnSalir.MouseLeave
Me.btnSalir.Text = "Salir"
End Sub
Código fuente 386
Realizadas ESTAS incorporaciones en el Código del Programa, al ejecutar de Como comprobaremos situando el cursor en el botón, this in English Cambia do título, recuperándolo al abandonarlo. Ver la Figura 145.
Figura 145. Button El control de Cambia do al título Para entrar el cursor.

Codificación de los eventos de controles - III

Situándonos en la ventana del editor de Código, HAREMOS clic en la Lista desplegable de Nombre de Clase, situada en la Parte Superior Izquierda del editor, seleccionaremos y El controlan un Codificar: btnSalir, COMO Muestra la Figura 143. A continuacion abriremos La Lista desplegable de Nombre de Método, Que mostrará la Lista de eventos available párrafo de control el Que acabamos de ELEGIR. Seleccionando MouseEnter, COMO VEMOS en la Figura 144, el editor de Código nos proporcionará el Procedure párrafo Este evento, del listo Para Qué escribamos do Código
Figura 143. Selección del control tenga Codificar.
Figura 144. Selección del evento ¿un Codificar párr control de la ONU.

Codificación de los eventos de controles - II

Private Sub Remitente btnSalir_Click (ByVal COMO System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
Me.Close ()
End Sub
Código fuente 385


Observe el lector Que en el Código de la Clase generada Por El: Diseñador del Formulario, el los CONTROLES sí declaran con La Palabra WithEvents Clavé, Por Lo Que Al ESCRIBIR los procedimientos manipuladores de evento, del Estós conectan Con El Evento adecuado MEDIANTE La Palabra manijas Clave. Ejecutando en el Estado real el Proyecto, observaremos de Como al pulsar el control el btnSalir del Formulario, this Sera cerrado. El Evento Que acabamos De Escribir es el denominado Evento Por Defecto, y recibe this Nombre, PORQUE ES EL Que se Muestra en el editor de Código CUANDO HACEMOS doble clic Sobre el control de el, en el: Diseñador del Formulario. 
No obstante, la ONU Tiene el control Otra serie de eventos ADEMÁS del evento ¿Por Defecto, párr TRATAR los Diversos Sucesos Que pueden acontecerle. EJEMPLO Por, Cuando situamos el cursor del Ratón Sobre Button un, sí producen el Evento MouseEnter, indicativo de Que el control de El Ratón no está Entrando en el área Que OCUPA el en el Formulario. De forma inversa, Cuando El Ratón abandona el control El Espacio Ocupado Por El sí producen el Evento MouseLeave. 
Supongamos Que CUANDO El Ratón entra en la zona del botón de control, QUEREMOS change el Texto de control de este, la venta y CUANDO, lo dejamos de como estába originalmente. En Este Caso, y de como no ESTAMOS Trabajando Con Los eventos porción Defecto del control, el Modo Más Fácil De Escribir do manipulador es el siguiente.

Codificación de los eventos de controles - I

Operativo Sistema de las Naciones Unidas de Windows es Orientado a eventos, he aquí Por Que Cualquier Minima Interacción Que realicemos Sobre el control de la ONU Formulario o, generará el Correspondiente Evento o Suceso Sobre DICHO Objeto visual, párr Que el Código deberemos ESCRIBIR SI ESTAMOS Interesados ​​en Darle Respuesta. En el Caso del botón de control Que acabamos de ESQUEMA Añadir, Cuando pulsamos Sobre el sí producir do Evento Click. Si ejecutamos en Este Momento el Programa, al pulsar Sobre El Botón btnSalir hay nada ocurrirá, ya Que aunque el Evento sí producen, no EXISTE Código Que le proporcione Respuesta. 
ESTO lo solucionamos ESCRIBIENDO UN Procedure manipulador de evento, del al Estilo de los manipuladores explicados en el tema de Sobre Tratamiento de eventos;. Revisar el DICHO lector el tema de párrafo Una Referencia Sobre la Creación y Manipulación de eventos en el Entorno de NET. Codificar Para el clic Evento de nuestro de Button, El Medio Más Rápido coinci en doble mando HACER DICHO Sobre click en el: Diseñador del Formulario. This Acción nos llevará al editor de Código, Que creara el manipulador Procedure of this Evento Vacío, listo párr servicio Codificado. 
Ver Figura 142. Lo Que vamos a HACER una continuacion es muy sencillo, ya Que al tratarse del Cierre del Formulario, llamaremos al Método Close () del Mismo, utilizando la Palabra Clave Me, párr Indicar Que ESTAMOS Haciendo Referencia al proprio Objeto desde el interior del Código de Clase do. El USO de Mí En Esta situación realizada es opcional, ya Que No Necesario seria, Pero proporciona Más CODIGO ONU legible. Veamos this manipulador de Evento en el Código fuente 385.
Figura 142. Procedure manipulador del evento ¿Haga clic de botón de control de la ONU.

Button

Propiedades destacaremos Las Siguientes.
• Texto. Cadena Con El título del Button. 
• TextAlign. Alineacion o Disposición del título Dentro del área del Button; defecto por 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. 
• Imagen. Podemos Imagen de Que mostrar en El Botón de Como complemento a título do, o bien, en el Caso de Que No asignemos ONU Texto al Button, nos permitira describir do funcionalidad. 
• FlatStyle. Tipo de resaltado párr El Botón. Por Defecto, El Botón aparece ONU de la estafa aliviar Cierto, pulsado Que al ser, proporciona el efecto de hundirse y Recuperar NuevaMente do Estado, Pero Podemos, Propiedad this Mediante, Que HACER El Botón sí muestre en Modo plano, ONU de la estafa ligero remarcado al pulsarse , etc 
• Font. Cambia el Tipo de letra y TODAS las Características del Elegido pisos, párrafo el Texto del Button 

Abriendo la ventana Cuadro de Herramientas, insertaremos el control de la ONU de Este Tipo, al Que daremos el Nombre btnSalir, Y Que utilizaremos para cerrar el Formulario finalizando el Programa. La Figura 141 Muestra la ubicación realizada el control of this Dentro de la Superficie del Formulario.
Figura 141. Botón de control insertado en el: Diseñador del Formulario.

Otros controles básicos

Al abrir el cuadro de herramientas podemos observar que el conjunto de controles disponibles es muy numeroso, lo que nos permite crear nuestro interfaz de usuario Windows de un modo rápido y sencillo, dotándole de un nutrido conjunto de funcionalidades. 
Tras la primera toma de contacto con los formularios realizada en los anteriores apartados, vamos seguidamente, a desarrollar un ejemplo que nos permita ilustrar el diseño y codificación de los controles más característicos que podemos utilizar en un formulario 
Para ello, crearemos un nuevo proyecto de tipo Windows al que daremos el nombre de Encuesta (hacer clic aquí para acceder a este ejemplo), y en él diseñaremos un formulario para que un hipotético comercio pueda realizar una encuesta a sus clientes, que después grabe en un archivo de datos para su posterior estudio. Por lo que una vez situados ante el diseñador vacío del formulario, empezaremos a proporcionarle funcionalidad a través de los controles descritos en los siguientes apartados.

Iniciar el formulario desde Main( ) - II

Despues añadimos sin módulo al Proyecto, empleando la Opción de menú Proyecto + módulo para ponerte en contacto, de VS.NET, y en DICHO módulo codificamos Procedure ONU Principal () Que se encargue de instanciar la ONU Objeto del Formulario. Si escribimos un algoritmo PARECIDO Muestra Que he aquí el Código fuente 383, el Programa, en efecto, sí iniciará y creara el Formulario, Pero INMEDIATAMENTE lo cerrará

Módulo de Entrada
Public Sub Main ()
'Instanciar ONU Objeto de la Clase del Formulario
Dim frmVentana Como Nuevo frmPrueba ()
frmVentana.Text = "probando from Código"
frmVentana.Show ()
End Sub
End Module
Código fuente 383
El anterior Código, aunque válido, sin Problema Tiene: Formulario de la ONU, al tratarse De Una ventana de Windows, lo NECESITA Que se denominador ONU Bucle De Proceso de Mensajes, Que le permita DETECTAR los MENSAJES Que le Envia el Sistema Operativo, y ACTUAR en Consecuencia . En. NET, sin conseguir párr Que Formulario disponga de la ONU Bucle de Mensajes, debemos utilizar la Aplicación del clase, Entre Cuyos Miembros Compartidos, SE ENCUENTRA EL METODO Run (). De Cuando un Método DICHO, le Pasemos ONU Objeto Formulario de como Parámetro, creara sin bucle de Mensajes párr DICHO Formulario y lo mantendra en ejecución resuelve Hasta Que el usuario de la Aplicación lo Cierre. Pues Modificando, el Código anterior, POR EL mostrado en el Código fuente 384, conseguiremos Que el Formulario permanezca en ejecución resuelve Una Vez Puntos Creado.

Módulo de Entrada
Public Sub Main ()
'Instanciar ONU Objeto de la Clase del Formulario
Dim frmVentana Como Nuevo frmPrueba ()
frmVentana.Text = "probando from Código"
'Utilizamos el Objeto Aplicación y Do
'Método de ejecución () crear PARA UN bucle de
'MENSAJES párrafo el Formulario y
'Ponerlo en ejecución celebra
Application.Run (frmVentana)
End Sub
End Module
Código fuente 384