Buscador

Codificación de menús - IV

Como muestra el Código fuente 392, el proceso a codificar para el menú mnuGrabar es muy similar al empleado para visualizar por pantalla los datos de la encuesta, sólo que en esta ocasión el destino de los datos es un archivo que manipulamos a través de un objeto StreamWriter.

Imports System.IO
Public Class Form1
Inherits System.Windows.Forms.Form
'....
'....
Private Sub mnuGrabar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles mnuGrabar.Click
Dim Archivo As String
Dim Escritor As StreamWriter
Archivo = InputBox("Ruta y nombre de archivo")
Escritor = New StreamWriter(Archivo)
Escritor.WriteLine(Me.txtNombre.Text)
Escritor.WriteLine(Me.txtObservaciones.Text)
Escritor.WriteLine(IIf(Me.chkCompra.Checked, "Ha realizado compra", "No ha
comprado"))
If Me.rbtHabitual.Checked Then
Escritor.WriteLine("Es un cliente habitual")
End If
If Me.rbtNuevo.Checked Then
Escritor.WriteLine("Es un nuevo cliente")
End If
If Me.rbtPropio.Checked Then
Escritor.WriteLine("Ha venido en vehículo propio")
End If
If Me.rbtPublico.Checked Then
Escritor.WriteLine("Ha venido utilizando transporte público")
End If
Escritor.WriteLine("Ha visitado la sección: " & Me.lstSecciones.SelectedItem)
Escritor.WriteLine("Su música preferida es: " & Me.cboEstiloMusical.Text)
Escritor.Close()
MessageBox.Show("Archivo de datos grabado")
End Sub
'....
'....
End Class
Código fuente 392

Finalizado el proceso de volcado a un archivo, podemos abrir el mismo con el Bloc de notas por ejemplo, para ver que su contenido corresponde a la información introducida en el formulario

Codificación de menús - III

La Figura 158 muestra el mensaje obtenido al usar el objeto MessageBox durante la ejecución del programa.
Figura 158. Caja de mensajes visualizada con el objeto MessageBox.
Por último, la opción de menú Grabar va a ser la encargada de tomar la información del formulario y guardarla en un archivo de texto. El nombre del archivo lo solicitaremos al usuario a través de la función del lenguaje InputBox( ), que muestra una caja de mensaje estándar incluyendo un cuadro de texto en el que en nuestro caso se deberá introducir la ruta y el nombre del archivo a crear. Debido a que vamos a trabajar con archivos, es necesario que al comienzo de la ventana del editor de código del IDE importemos el espacio de nombres System.IO.

Codificación de menús - II

No debemos preocuparnos porción this Aspecto, PORQUE vamos a recurrir a la Enumeración de la Plataforma. NET ControlChars, Qué COMO do Nombre indica, contains Caracteres de control. De Este Modo, si seleccionamos el Miembro CrLf, y he aquí una Cadena concatenamos una, enviaremos la Combinación de caractères de retorno de carro y nueva línea, y la siguiente Porción de texto Sera ubicada en Una línea nueva. El Código fuente 391 Muestra el Código del evento ¿clic de mnuDatos. Simplificar Para El Ejemplo, sí ASUME Que el usuario del Programa ha introducido Valores del tanto en el ListBox Control de Como en el ComboBox, of this Manera evitamos Código Adicional de comprobación.

Private Sub remitente mnuDatos_Click (ByVal como System.Object, ByVal e As
System.EventArgs) Handles mnuDatos.Click
Dim Texto As String
Texto = Me.txtNombre.Text y ControlChars.CrLf
Texto & = Me.txtObservaciones.Text y ControlChars.CrLf
Texto & = IIf (Me.chkCompra.Checked "Ha Realizado compra", "No ha comprado") y
ControlChars.CrLf
Si Me.rbtHabitual.Checked Entonces
Texto & = "Es Un Cliente habitual" y ControlChars.CrLf
End If
Si Me.rbtNuevo.Checked Entonces
Texto & = "Es Un Nuevo cliente" y ControlChars.CrLf
End If
Si Me.rbtPropio.Checked Entonces
Texto & = "Ha Venido en vehicle proprio" & ControlChars.CrLf
End If
Si Me.rbtPublico.Checked Entonces
Texto & = "Ha Venido utilizando Transporte Público" y ControlChars.CrLf
End If
Texto & = "Ha visitado la Sección:" & Me.lstSecciones.SelectedItem y
ControlChars.CrLf
Texto & = "Su Música Preferida es:" & Me.cboEstiloMusical.Text
MessageBox.Show (Texto, "Datos introducidos en el Formulario")
End Sub
Código fuente 391

Codificación de menús - I

Al seleccionar Una Opción de menú en la ONU Formulario Sí Producir el Evento clic Sobre el Control de MenuItem Correspondiente, PODEMOS de Que Codificar al Igual Qué hacemos estafa Cualquier Otro Controlar del Formulario. Que Es El Puesto clic Evento Por Defecto del Control de MenuItem, al HACER clic doble Sobre el Mismo en Modo de Diseño, pasaremos al editor de Código, Que nos situará en el manipulador Procedimiento de este Evento. El Código fuente 389 corresponde a la Opción de menú Salir (control mnuSalir), en La Que escribiremos el Código necesario para cerrar el Formulario.

Private Sub Remitente mnuSalir_Click (ByVal COMO System.Object, ByVal e As
System.EventArgs) Handles mnuSalir.Click
Me.Close ()
End Sub
Código fuente 389

En La opcion de menu Datos introducidos (control mnuDatos), Vamos a recopilar Toda La Información introducida Sobre el Cliente en el Formulario de Encuesta, visualizándola des Través De Una caja de Mensajes. Dicha Caja La mostraremos empleando la del CLASE de Mensajes, y Haz método Compartido Show (), en Cuyo imprimación Parámetro situamos el Texto a mostrar, MIENTRAS Que de En El Podemos Segundo INCLUIR sin título Para El Mensaje. En el Código fuente 390 mostramos ONU Pequeño EJEMPLO de la USO.

MessageBox.Show ("Hola")
Código fuente 390

En nuestro de Caso concreto, el Texto a mostrar es muy extenso, PODEMOS Como comprobar Por La CANTIDAD de Controles del Formulario; ADEMÁS, LO MÁS apropiado Seria Que CADA dato FUERA mostrado en Una línea Distinta del Mensaje

Diseño de menús - II

El proceso de edición del menú se realiza directamente en el formulario, en el mismo lugar en el que el menú aparecerá en tiempo de ejecución. Al hacer clic en la primera opción del menú, podemos dar nombre y propiedades a la misma. Simultáneamente y de un modo muy intuitivo, veremos las próximas opciones disponibles, tanto las desplegables a partir de dicho menú, como las de la barra principal. Sólo hemos de movernos en la dirección que necesitemos, asignando nombre a las opciones, y valores a sus propiedades. Ver la Figura 157.
Figura 157. Diseño de las opciones de menú de un formulario. 
Cada una de las opciones que componen el menú es a su vez un control MenuItem, puesto que como hemos dicho anteriormente, un menú está compuesto del control contenedor MainMenu y una serie de controles MenuItem, tantos como opciones tenga el menú. Si durante la creación de los MenuItem sólo proporcionamos el nombre, el IDE va asignando a dicho control valores por defecto en sus propiedades. En este caso asignaremos los siguientes nombres a las opciones de nuestro menú: mnuArchivo, mnuDatos, mnuGrabar y mnuSalir. 
Para modificar las propiedades de una opción de menú, sólo hemos de seleccionarlo en la estructura de menú que estamos creando en el diseñador del formulario, y pasar a la ventana de propiedades. Entre las propiedades disponibles para un control MenuItem podemos destacar las siguientes. 
• Text. Contiene una cadena con el literal o texto descriptivo de la opción de menú. 
• Enabled. Permite habilitar/deshabilitar la opción de menú. Cuando se encuentra deshabilitada, se muestra su nombre en un tono gris, indicando que no puede ser seleccionada por el usuario. 
• Checked. Marca/desmarca la opción. Cuando una opción está marcada, muestra junto a su nombre un pequeño símbolo de verificación o punteo. 
• ShortCut. Se trata de un atajo de teclado, o combinación de teclas que nos van a permitir ejecutar la opción de menú sin tener que desplegarlo. Al elegir esta propiedad, aparecerá una lista con todos los atajos disponibles para asignar. 
Podemos adicionalmente, asignar una tecla de acceso rápido o hotkey a una opción de menú, anteponiendo el carácter & a la letra que deseemos, de las que se encuentran en la propiedad Text del control MenuItem. Al igual que sucede con los demás tipos de controles, en el texto de la opción de menú, aparecerá subrayada la mencionada letra. De este modo, cuando despleguemos un menú, no será necesario posicionarnos en una de ellas para ejecutarla, sino que simplemente pulsando la tecla rápida, se ejecutará el código de dicha opción.

Diseño de menús - I

En Primer Lugar, debemos ESQUEMA Añadir control de la ONU MainMenu al: Diseñador del Formulario. Este control de Actua Como contenedor de Las DIVERSAS OPCIONES de Que compondrán de el menú. En la ventana de Propiedades daremos el Nombre mnuPrincipal un control Este. Una Vez insertado, this controlar Qaeda del situado Debajo de la Plantilla del: Diseñador del Formulario, en un panel no inferior Reservado Para Controles Especiales. 
Por Otro Lado, Debajo De La Barra de sin título Podemos ver La Primera Opción Con El Nombre Escribá here, sin Indicador Que SIRVE COMO punto de partida párr Comenzar el Diseño del menú. Ver la Figura 156.
Figura 156. Control MainMenu insertado en el Formulario.

Menús

Un menú coinci En Un Conjunto de options situadas horizontalmente Debajo de la barra de título de Formulario de la ONU. Al seleccionar ESTAS OPCIONES, SI despliegan Listas de Nuevas Opciones Dependientes, Que permiten ejecutar Acciones de servicio e IMCMEXICO. 

Controles de pisos menú 

Desde la Perspectiva del Programador de VB.NET, la construcción del menú PARA UN Formulario sí Realiza utilizando de forma Combinada dos controls : MainMenu y MenuItem. Para completar our EJEMPLO del Formulario de Encuesta, Veremos a continuacion Los Pasos necesarios un para dar ESQUEMA Añadir menú de un sencillo a la ventana, que contenga algunas opciones.

ComboBox - II

La Figura 155 Muestra el Formulario estafa Este nuevo añadido control.
Figura 155. Control ComboBox desplegando Lista de Valores.

ComboBox - I

Control de la ONU El ComboBox es basado en la Combinación (de Ahí do Nombre) de dos Controles Que ya TRATADO: hemos: TextBox y ListBox. ComboBox control de la ONU DISPONE De Una zona de Edición de texto y de Una Lista de Valores, de Que Podemos desplegar desde el Cuadro de Edición. IGUALMENTE Tiene ONU Estilo De Visualizacion de Que Podemos establecer MEDIANTE la Propiedad DropDownStyle, Cuyos Valores Hijo del los siguientes:
• Sencillo. El control de sí Muestra Con La Misma apariencia Que sin ListBox. 
• DropDown. Estilo defecto por. Muestra El control de do cerrada Lista, y permite select values ​​La Lista. En el Caso de Que de el valor necesitemos de Que No Se encuentre en la Lista, de Podemos escribirlo en Do Cuadro de texto. 
• DropDownList. Muestra El control de do cerrada Lista, y permite select values ​​La Lista, Pero no permite ESCRIBIR Valores en el Cuadro de texto. 
En el Caso de Que La Lista desplegable muy grande mar, MEDIANTE la Propiedad MaxDropDownItems asignaremos El Número de Elementos Máximo Que mostrará la Lista del control. El resto de Propiedades y Métodos hijo Comunes Con Los Controles TextBox y ListBox. Para our Formulario de EJEMPLO, añadiremos control de la ONU of this pisos Con El Nombre cboEstiloMusical, en el Que seleccionaremos el Estilo musical del Cliente Preferido. Sin embargo, no añadiremos values ​​a la lista en Modo de Diseño, Lo Que Sino HAREMOS porción Código en El Momento En que el mar Formulario Cargado al ejecutarse
Podemos Lo ESTO conseguir codificando el Evento Load () del Formulario, Que producen CUANDO La Ventana es Cargada Durante la ejecución celebra del Programa. Situándonos en el editor de Código, abriremos La Lista de Nombre de Clase y seleccionaremos el valor de base de Eventos del clase. A continuacion, abriremos La Lista de Nombre de Método, seleccionaremos y El Evento Load (), ESCRIBIENDO el Código Que se Muestra en el Código fuente 388, de el CuAl utiliza la Propiedad Items del control ComboBox, Llamando un su metodo AddRange (), y le pasa COMO Parámetro array sin de cadenas, Con values ​​Que apareceran en el ComboBox.

Private Sub Form1_Load (remitente de ByVal como objeto, ByVal e As System.EventArgs) Handles
MyBase.Load
Me.cboEstiloMusical.Items.AddRange (New String () {"Pop", "Rock", "Clásica", "Nueva
Edad "})
End Sub
Código fuente 388

ListBox - II

• Ordenado. This de Cuando Propiedad Contiene el valor verdadero, Ordena el Contenido de la Lista. Contiene de Cuando, Los Elementos de Que hubiera previamente ordenados falsas, permanecen Orden estafa DICHO, MIENTRAS de Que Los Nuevos no ordenados seran.
• IntegralHeight. Los Valores de la Lista hijo mostrados al completo this CUANDO Propiedad contains Verdadero. Sin embargo, al asignar el valor False, Segun el no molestar del control, Que Puede del El último valor de la Lista del mar visualizado SÓLO en parte. La Figura 154 Muestra de la ONU Propiedad estafa ListBox this a Incorrecta.
Figura 154. ListBox mostrando a instancia de parte del ÚLTIMO Elemento debido a la Propiedad IntegralHeight.
• SelectionMode. Establece el Modo en el Que vamos un Poder select Los Elementos de la Lista. Contiene Si this Propiedad Ninguno, No Se realizará Selección; One, permite SELECCIONAR values ​​Uno a Uno; MultiSimple permite select Múltiples values ​​La Lista Pero debemos seleccionarlos INDEPENDIENTEMENTE; ULTIMO POR, MultiExtended nos posibilita La Selección múltiple, Con La Ventaja De que Podemos HACER clic en valor un, y ARRASTRAR, seleccionando en La Misma Operación Varios Elementos de la Lista. 
• SelectedItem. Devuelve el Elemento de la Lista ACTUALMENTE Seleccionado. 
• SelectedItems. Una Devuelve Colección ListBox.SelectedObjectCollection, contains Que Los Elementos de la Lista Que Han Sido Seleccionados

ListBox - I

Un control de ListBox Contiene Una Lista de Valores, De Los Cuales, el usuario Puede del select UNO O Varios simultaneamente. Para Nuestro Programa de EJEMPLO, insertaremos control de la ONU de Este TIPO En El Formulario Con El lstSecciones Nombre, MEDIANTE EL Podremos de Que Indicar las Secciones del Establecimiento Que ha visitado el Cliente encuestado. Entre las Principales Propiedades de control de Este, PODEMOS resaltar Las Siguientes. 
• Artículos. Contiene la Lista de Valores Que Visualiza el control de el. Se Trata de ListBox.ObjectCollection sin pisos, de Manera Que el Contenido de la Lista Puede Ser del tanto Tipos caracter, COMO Numéricos y Objetos de Distintas Clases. Al select this Propiedad en la ventana de Propiedades del control, pulsar y El Que Button Contiene, de Podemos introducir en Una ventana Elementos de control el párr. Ver Figura 152.
Figura 152. Introducción de Valores PARA UN ListBox en Tiempo de Diseño.
El control de porción quedaria lo del tanto estafa Valores asignados en la Etapa de Diseño, COMO Muestra la Figura 153.
Figura 153. ListBox en Diseño estafa values ​​En Su Lista.

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.