Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
.NET - II
SEMANA 3
Aplicaciones MDI
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni 1
ESTE DOCUMENTO CONTIENE LA SEMANA 3
utilizar los contenidos para fines comerciales de ninguna clase.
2
ESTE DOCUMENTO CONTIENE LA SEMANA 3
ÍNDICE
APLICACIONES MDI ............................................................................................................................ 4
OBJETIVO ESPECÍFICO .............................................................................................................................. 4
INTRODUCCIÓN ..................................................................................................................................... 4
1. APLICACIONES MDI ......................................................................................................................... 5
1.1. TRABAJO CON VENTANAS MDI ........................................................................................... 5
1.2. DISEÑO DE LA VENTANA HIJA MDI ................................................................................... 10
1.2.1 VENTANA DE BIENVENIDA Y EVENTO LOAD ............................................................. 10
1.2.2 DESDE EL MENÚ PRINCIPAL ...................................................................................... 14
2. ENSAMBLADO DE APLICACIONES .................................................................................................... 17
2.1. ENSAMBLADO DE APLICACIONES ..................................................................................... 17
2.2. CÓMO CREAR ENSAMBLADOS ......................................................................................... 18
2.3 MANIFIESTO DE UN ENSAMBLADO .................................................................................. 20
2.4 CÓMO AGREGAR ENSAMBLADOS A UNA APLICACIÓN .................................................... 21
2.5 CÓMO USAR UN ENSAMBLADO ....................................................................................... 23
3. HERRAMIENTAS VISUALES ............................................................................................................. 25
3.1 UTILIZACIÓN DE TABCONTROL (FICHAS) .......................................................................... 26
3.2 UTILIZACIÓN DE LISTBOX .................................................................................................. 26
3.3 UTILIZACIÓN DE COMBOBOX ........................................................................................... 27
3.4 EJEMPLO 1 ........................................................................................................................ 28
3.5 EJEMPLO 2 ........................................................................................................................ 41
COMENTARIO FINAL ......................................................................................................................... 48
REFERENCIAS ....................................................................................................................................... 49
3
ESTE DOCUMENTO CONTIENE LA SEMANA 3
APLICACIONES MDI
OBJETIVO ESPECÍFICO
• Utilizar ventanas MDI y herramientas visuales en el desarrollo de aplicaciones integradas.
INTRODUCCIÓN
El presente material tiene como objetivo fundamental introducir al alumno en el mundo de las
aplicaciones con ventanas MDI, desde las cuales se puede desplegar un sinnúmero de “ventanas
hijas”, conformando de esta manera una aplicación completa.
Además, se estudiarán nuevas herramientas gráficas, tales como los TabControls, TabPages,
ListBoxes y ComboBoxes, las que permiten hacer grandes mejoras en las aplicaciones, logrando
que estas sean más amigables y óptimas. Como se verá, el alumno podrá darse cuenta de que en
más de una ocasión ha usado aplicaciones que poseen estos controles.
Antiguamente, cada vez que se requería una DLL (dynamic link library, “biblioteca de enlace
dinámico” en español) para que una aplicación funcionara, era necesario registrarla en el archivo
de registro (registry), lo que a veces producía conflictos debido a problemas de compatibilidad. No
obstante, con la opción de ensamblados se podrá conocer las nuevas opciones que ofrece Visual
Studio .NET para evitar ese tipo de problemas.
4
ESTE DOCUMENTO CONTIENE LA SEMANA 3
1. APLICACIONES MDI
MDI es la sigla en inglés para interfaces de documentos múltiples (multiple documents interfaces),
lo que proporciona funcionalidades cuando de una “ventana padre” se requieren “ventanas hijas”.
Para lograr esto, generalmente se utilizan opciones de menú que permitirán visualizar varias
pantallas juntas, cada una independiente de la otra, pero que residen dentro del mismo
componente padre, que actúa como contenedor.
Para comprender mejor cómo funciona una ventana MDI, se recurrirá a un ejemplo. Por lo tanto,
se crea un nuevo proyecto con un formulario, y la propiedad IsMdiContainer se deja con el valor
True.
5
ESTE DOCUMENTO CONTIENE LA SEMANA 3
6
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Se da clic en el botón Import…, y se abre la clásica ventana de Windows para seleccionar una
imagen.
7
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Y se da clic en OK.
8
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Aquí se indica que la imagen de fondo forma parte de los recursos (resources) del proyecto. Esto
también se puede ver en el panel de la esquina superior derecha.
La ejecución muestra lo siguiente: una ventana que ocupa toda la pantalla, y con la imagen de
fondo seleccionada.
9
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Para el Form2:
- Name: fmBienvenida
- BackColor: Black
- FormBorderStyle: None
- StartPosition: CenterScreen
Para el Label1:
- Name: lbBienvenida
- BackColor: Black
- Font.Size: 30
- ForeColor: DarkOrange
- Text: Bienvenido a mi Sistema
Además, se debe agregar un control Timer al formulario correspondiente a la ventana MDI, que en
el ToolBox se encuentra en la sección Components.
10
ESTE DOCUMENTO CONTIENE LA SEMANA 3
La idea del Timer es que ejecute una acción cada cierto intervalo de tiempo. Dicha acción se
realiza en el evento Tick del Timer. Entonces, el ejemplo consiste en mostrar la pantalla de
bienvenida durante 5 segundos. El código es el siguiente:
11
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Public Class fmVentanaMDI
Private fMensaje As New fmBienvenida
Private contador As Integer
Private Sub fmVentanaMDI_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
contador = 0
Timer1.Enabled = True
Timer1.Interval = 1000
fMensaje.MdiParent = Me
fMensaje.Show()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Timer1.Tick
contador = contador + 1
If contador = 5 Then
fMensaje.Close()
Timer1.Enabled = False
End If
End Sub
End Class
Se define la variable contador, que es global y se puede usar en cualquier método de la clase
fmVentanaMDI. Además, se configura que el intervalo del Timer es de 1000 milisegundos, es decir,
1 segundo, que corresponde a la frecuencia con que se ejecuta el método Tick, mientras el Timer
está disponible. Entonces, en el evento Load() se habilita el Timer y se muestra la ventana hija,
llamada fmMensaje. Cada 1000 milisegundos se ejecuta el evento Tick, y cada vez que se ejecuta
aumenta el contador en 1. Cuando el contador llega a 5 (que indica que ya pasaron 5000
milisegundos, o bien, 5 segundos), la ventana de bienvenida se cierra y el Timer se deshabilita. La
ejecución muestra lo siguiente (durante 5 segundos):
12
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Si una vez que se cierra la ventana de bienvenida se quisiera mostrar otra ventana hija, bastaría
con modificar el código del evento Tick. Esto supone la existencia de otro formulario que esté
disponible para ser mostrado. En este caso, se creó otro formulario con las propiedades:
- Name: fmVentanaHijaMDI
- Text: Ventana Hija MDI
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Timer1.Tick
contador = contador + 1
If contador = 5 Then
fMensaje.Close()
Timer1.Enabled = False
Dim fVentanaHija As New fmVentanaHijaMDI
fVentanaHija.MdiParent = Me
fVentanaHija.Show()
End If
End Sub
Nótese el uso de la propiedad MdiParent. Esta indica que la “ventana padre” de la “ventana hija”
es Me, que es una referencia a la clase fmVentanaMDI.
Y la ejecución muestra lo siguiente, una vez que se cierra la ventana de bienvenida:
13
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Si no se usara la ventana de bienvenida, el código remarcado en negrita se escribe en el evento
Load() de la ventana MDI, y el código queda así:
Public Class fmVentanaMDI
Private Sub fmVentanaMDI_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Dim fVentanaHija As New fmVentanaHijaMDI
fVentanaHija.MdiParent = Me
fVentanaHija.Show()
End Sub
End Class
1.2.2 DESDE EL MENÚ PRINCIPAL
Otra forma de desplegar una ventana hija es mediante una opción del menú principal, que va
anclado a la ventana MDI.
A la ventana MDI del ejemplo anterior se le agregará un control MenuStrip, que contendrá un ítem
de menú desde el cual se desplegará una ventana hija. No se usará el Timer.
14
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Y se crea la opción de menú Abrir y el ítem de menú Ventana Hija:
Se da doble clic en el ítem de menú para escribir el código:
Public Class fmVentanaMDI
Private Sub VentanaHijaToolStripMenuItem_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
VentanaHijaToolStripMenuItem.Click
Dim fVentanaHija As New fmVentanaHijaMDI
fVentanaHija.MdiParent = Me
fVentanaHija.Show()
End Sub
End Class
15
ESTE DOCUMENTO CONTIENE LA SEMANA 3
16
ESTE DOCUMENTO CONTIENE LA SEMANA 3
2. ENSAMBLADO DE APLICACIONES
2.1. ENSAMBLADO DE APLICACIONES
Como se ha visto hasta ahora, en el entorno de desarrollo de Visual Studio se puede organizar el
desarrollo en una solución, que a su vez puede tener uno o muchos proyectos, y dentro de cada
proyecto pueden existir uno o más archivos de código fuente o recursos en general (imágenes,
archivos de configuración, etc.). Ahora bien, en el momento en que se compila la aplicación, se
genera un componente denominado ensamblado, que es un archivo generado por Visual Studio
que contiene el código que se escribió para la aplicación en un formato que puede ser entendido
por el computador para ejecutar el programa.
1. Ejecutable: se refiere a un archivo con extensión .exe que puede ejecutar la aplicación al
hacer doble clic sobre el mismo, por ejemplo:
Al hace doble clic, se muestra la aplicación:
17
ESTE DOCUMENTO CONTIENE LA SEMANA 3
2. Librería de datos: corresponde a un archivo con extensión .dll que por sí solo no es
ejecutable (no sucederá nada al hacer doble clic sobre el archivo), pero que en cambio
tiene código de ayuda para que un ensamblado ejecutable (.exe) pueda realizar su trabajo
como el usuario lo espera, por ejemplo:
De la ComboBox, seleccionar Release y presionar el botón Close.
18
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Nuevamente acceder al menú Build y seleccionar la opción Build <nombre del proyecto>. En este
caso, Build VentanaMDI.
19
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Esto significa que al dar doble clic a ese archivo, se abrirá la aplicación creada en el ejemplo.
Entonces, ese archivo .exe corresponde al ensamblado de la aplicación, e internamente contiene
“referencias” a las fuentes, imágenes y todos los archivos que se requieren para que funcione
correctamente.
Todo esto conforma una ventaja significativa, ya que no es necesario modificar el archivo de
registro (registry) para que se cataloguen las DLL’s, de esta forma se reducen los conflictos de
estas y además las aplicaciones son más seguras y de fácil implementación y transporte.
20
ESTE DOCUMENTO CONTIENE LA SEMANA 3
21
ESTE DOCUMENTO CONTIENE LA SEMANA 3
22
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Se hace doble clic en OperacionesMatematicas y se muestra(n) la(s) clase(s) que contiene. En este
caso, la clase frOperaciones.
Al menú principal de la Ventana MDI se le agregará un nuevo ítem, con nombre Operaciones,
como se muestra en la siguiente figura:
23
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Al principio del código de la clase se debe agregar la sentencia Imports, asignando un alias al
namespace asociado a la clase frOperaciones.
Imports FRMOperaciones = WindowsApplication1.frOperaciones
24
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Y se despliega la pantalla:
Y si se minimiza la pantalla, se puede apreciar que efectivamente la pantalla es una ventana hija
de la ventana MDI.
Se invita al alumno a conocer más sobre los ensamblados visitando las referencias Ensamblados.a,
Ensamblados.b y Ensamblados.c.
3. HERRAMIENTAS VISUALES
Anteriormente, ya se ha estudiado la creación de formularios, y algunos controles básicos que se
pueden agregar para comenzar a conformar una aplicación relativamente simple. Además, se
reconoció también la importancia del uso de lápices y diversas formas de “dibujar” en un
formulario. En esta semana se conocerán otros controles muy usados y muy útiles en los
formularios: TabControl, ListBox y ComboBox, y finalmente se mostrará un ejemplo del uso de
estos.
25
ESTE DOCUMENTO CONTIENE LA SEMANA 3
26
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Se invita al alumno a conocer más eventos, métodos y propiedades de los ListBox en la referencia
bibliográfica indicada como Microsoft (2016c).
3.3 UTILIZACIÓN DE COMBOBOX
Un ComboBox es un objeto que combina un cuadro de texto (TextBox) y una lista desplegable
(ListBox), permitiendo al usuario seleccionar uno y solo uno de los elementos de ella, o bien
escribir un valor. Esto último dependerá de si la ComboBox es o no editable. También se dispone
de métodos que permiten agregar y quitar elementos, buscar alguno en particular, ordenarla, etc.
En el Toolbox, se encuentra en la sección Common Controls.
27
ESTE DOCUMENTO CONTIENE LA SEMANA 3
3.4 EJEMPLO 1
A continuación, se desarrollará un ejemplo en el que se deben ingresar varios datos de una
persona, separados por fichas. Las fichas contendrán:
• Datos personales
• Datos de estudio de educación superior
• Pasatiempos
28
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Para acceder a las propiedades de un TabPage, se debe estar posicionado en la TabPage a la que
se le desea modificar alguna propiedad o agregar algún control, tal como se muestra en la
siguiente figura:
Según el ejemplo planteado, se requerirán 3 fichas. Por lo tanto, se agregará la que falta. Dado que
la colección de fichas es una propiedad del TabControl, entonces es necesario posicionarse en este
29
ESTE DOCUMENTO CONTIENE LA SEMANA 3
y acceder a la propiedad TabPage y dar clic a los 3 puntos suspensivos . Al hacerlo se verá lo
siguiente:
Se da clic en el botón Add, y se agrega la tercera TabPage.
En esta misma instancia se pueden configurar algunas propiedades de las TabPages.
Para la TabPage1, se tiene:
- Name: tpPersonales
- BackColor: LightGray
- BorderStyle: Fixed3D
- Text: Datos Personales
Y queda de la siguiente manera:
30
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Para la TabPage2, se tiene:
- Name: tpEstudios
- BackColor: CadetBlue
- BorderStyle: Fixed3D
- Text: Estudios
Y queda de la siguiente manera:
Para la TabPage3, se tiene:
- Name: tpHobbies
- BackColor: YelloweGreen
- BorderStyle: Fixed3D
- BackGroundImage: se carga una imagen cualquiera, similar a como se carga en los
formularios.
- Text: Hobbies
Y queda de la siguiente manera:
31
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Ahora, se agregarán los controles correspondientes a cada una de las TabPages creadas.
En la TabPage de los Datos Personales se agregan 4 Labels, 3 TextBoxes, 2 RadioButtons y un
GroupBox.
Y se tiene que:
Para el Label1: Para el Label3:
- Name: lbNombre - Name: lbSexo
- Text: Nombre - Text: Sexo
Para el Label2: Para el Label4:
- Name: lbApellido - Name: lbDireccion
- Text: Apellido - Text: Dirección
32
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Para el TextBox1: Para el radioButton1:
- Name: txNombre - Name: rbMasculino
- Checked: True
Para el TextBox2: - Text: Masculino
- Name: txApellido
Para el radioButton2:
Para el TextBox3: - Name: rbFemenino
- Name: txDireccion - Text: Femenino
Y todos los controles con Font.Size = 10
En el TabPage de los Estudios, se agregan 4 Labels y 4 ComboBoxes.
Y se tiene que:
Para el Label5: Para el Label7:
- Name: lbInstitucion - Name: lbAnnos
- Text: Institución - Text: Años de Estudio
Para el Label6: Para el Label8:
- Name: lbCarrera - Name: lbSituacion
- Text: Carrera - Text: Situación
Para poblar una ComboBox, se selecciona y se da clic en los tres puntos suspensivos de la
propiedad Items.
Para la CombBox1:
- Name: cbInstitucion
- BackColor: Turquoise
- Items:
33
ESTE DOCUMENTO CONTIENE LA SEMANA 3
- MaxDropDownItems: 5
- Sorted: True
Para la CombBox2:
- Name: cbCarrera
- BackColor: Silver
- Items:
Para la CombBox3:
- Name: cbAnnos
- BackColor: Window
- Items:
34
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Para la CombBox4:
- Name: cbSituacion
- BackColor: LightSalmon
- ForeColor: MidnightBlue
- Items:
En el TabPage de los Hobbies, se agregan 2 Labels y 2 ListBoxes.
35
ESTE DOCUMENTO CONTIENE LA SEMANA 3
- SelectionMode: MultiSimple
Para la ListBox2:
- Name: lbxDeportes
- BackColor: GainsBoro
- Items:
36
ESTE DOCUMENTO CONTIENE LA SEMANA 3
- ScrollAlwaysVisible: True
- Sorted: True
Y todos los controles con Font.Size = 10
La ejecución muestra el despliegue de las ComboBoxes.
ComboBox de Instuticiones ComboBox de Carreras
ComboBox de Años de Estudio ComboBox de Situación
Con respecto a las ListBoxes, se puede apreciar que en la de Hobbies, se pueden seleccionar
varias, mientras que en la de Deportes solo una.
37
ESTE DOCUMENTO CONTIENE LA SEMANA 3
También se agregará un botón para darle algo de funcionalidad a esta pantalla. La idea es que al
dar clic al botón se muestre un MessageBox que contenga la información ingresada.
El código del botón, con las validaciones respectivas suponiendo que los campos son obligatorios,
queda así:
Public Class Form1
Private Sub btResumen_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btResumen.Click
Dim resumen, sexo, hobbies As String
hobbies = ""
If txNombre.Text = "" Then
MessageBox.Show("Debe ingresar un nombre")
Exit Sub
End If
If txApellido.Text = "" Then
MessageBox.Show("Debe ingresar un apellido")
Exit Sub
End If
If txDireccion.Text = "" Then
MessageBox.Show("Debe ingresar un dirección")
Exit Sub
End If
If cbInstitucion.Text = "" Then
MessageBox.Show("Debe ingresar una Institución")
Exit Sub
End If
If cbCarrera.Text = "" Then
MessageBox.Show("Debe ingresar una Carrera")
Exit Sub
End If
If cbAnnos.Text = "" Then
MessageBox.Show("Debe ingresar Años")
Exit Sub
End If
If cbSituacion.Text = "" Then
MessageBox.Show("Debe ingresar una Situación")
Exit Sub
End If
If lbxHobbies.SelectedIndex = -1 Then
MessageBox.Show("Debe ingresar al menos 1 Hobbie")
Exit Sub
Else
For Each hobbie In lbxHobbies.SelectedItems
hobbies = hobbies & " " & hobbie.ToString
Next
End If
If lbxDeportes.SelectedIndex = -1 Then
MessageBox.Show("Debe ingresar 1 deporte")
Exit Sub
End If
If rbFemenino.Checked = True Then
sexo = "femenino"
Else
sexo = "masculino"
End If
38
ESTE DOCUMENTO CONTIENE LA SEMANA 3
resumen = "DATOS PERSONALES" & vbCrLf & _
"================" & vbCrLf & _
"Nombre : " & txNombre.Text & vbCrLf & _
"Apellido: " & txApellido.Text & vbCrLf & _
"Sexo : " & sexo & vbCrLf & _
"Dirección: " & txDireccion.Text & vbCrLf & vbCrLf & _
"ESTUDIOS " & vbCrLf & _
"========" & vbCrLf & _
"Institucion : " & cbInstitucion.Text & vbCrLf & _
"Carrera : " & cbCarrera.Text & vbCrLf & _
"Años Estudio: " & cbAnnos.Text & vbCrLf & _
"Situación: " & cbSituacion.Text & vbCrLf & vbCrLf & _
"PASATIEMPOS" & vbCrLf & _
"===========" & vbCrLf & _
"Hobbies : " & hobbies & vbCrLf & _
"Deportes : " & lbxDeportes.SelectedItem
MessageBox.Show(resumen)
End Sub
End Class
La ejecución es la siguiente:
39
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Por ejemplo, si no se hubiera seleccionado ningún “hobbie”, al resultado sería:
40
ESTE DOCUMENTO CONTIENE LA SEMANA 3
3.5 EJEMPLO 2
Una utilidad muy usada de las ListBoxes es el “traspaso” de ítems de una a otra. A continuación se
desarrollará un ejemplo de “carro de compras” en que el usuario tiene que seleccionar los ítems
para trasladarlos a su carro. Para ello, se creará un nuevo proyecto, con un nuevo formulario.
41
ESTE DOCUMENTO CONTIENE LA SEMANA 3
- SelectionMode: MultiSimple
Para la ListBox2:
- Name: lbxCargados
- Font.Size: 10
- SelectionMode: MultiSimple
- Sorted: True
La ejecución arroja lo siguiente:
42
ESTE DOCUMENTO CONTIENE LA SEMANA 3
La idea es seleccionar uno o más ítems en la ListBox de la izquierda, y que al presionar el botón >>,
los ítems seleccionados se traspasen a la ListBox de la derecha y a la vez desaparezcan de la lista
izquierda. Y si se desea retirar un ítem de la lista derecha, se presiona el botón << y el ítem vuelve
a la lista de la izquierda.
Nótese que la lista izquierda está desordenada. Se ordenará en el evento Load del formulario.
Public Class fmDormitorio
Private Sub fmDormitorio_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
lbxArticulos.Sorted = True
End Sub
End Class
43
ESTE DOCUMENTO CONTIENE LA SEMANA 3
44
ESTE DOCUMENTO CONTIENE LA SEMANA 3
45
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Se da clic al botón >>. Se puede apreciar que en la lista de la derecha se cargan los artículos
seleccionados y a la vez se eliminan de la lista de la izquierda.
46
ESTE DOCUMENTO CONTIENE LA SEMANA 3
Se da clic al botón <<, se eliminan los artículos de la lista de la derecha y estos se cargan en la lista
de la izquierda, manteniendo el orden alfabético.
47
ESTE DOCUMENTO CONTIENE LA SEMANA 3
COMENTARIO FINAL
Resulta inconmensurable la cantidad de aplicaciones que se pueden desarrollar con lo aprendido
esta semana. Hoy en día, prácticamente todas las aplicaciones de escritorio se componen de una
Ventana MDI contenedora sobre la cual se despliegan muchas ventanas según las opciones de
menú que presente la aplicación. Además, todas esas ventanas hijas se pueden maximizar y
minimizar dentro de la misma pantalla MDI padre. No se debe olvidar el plus que se le puede dar a
una aplicación con una ventana de bienvenida.
La utilidad de los TabControls y TabPages no tiene límites, pues permiten optimizar mucho espacio
en la pantalla, y además organizar de mejor manera los datos, ya sea para efectuar ingresos como
consultas.
A lo anterior, se suma el uso de ListBox y ComboBox, hoy en día muy utilizados tanto en
aplicaciones de escritorio como en aplicaciones web. En esta semana se estudió cómo poblarlas en
tiempo de diseño y en semanas posteriores se verá cómo poblarlas desde una base de datos.
48
ESTE DOCUMENTO CONTIENE LA SEMANA 3
REFERENCIAS
Microsoft (2016a). TabControl (Clase). Recuperado de: https://msdn.microsoft.com/es-
es/library/system.windows.forms.tabcontrol(v=vs.110).aspx
es/library/system.windows.forms.tabpage(v=vs.110).aspx
es/library/system.windows.forms.listbox(v=vs.110).aspx
es/library/system.windows.forms.combobox(v=vs.110).aspx
es/library/30azhh5b(v=vs.90).aspx
https://msdn.microsoft.com/es-es/library/bk5xe2kk(v=vs.90).aspx
Microsoft (2016g). Cómo: agregar o quitar referencias en Visual Studio (Visual Basic). Recuperado
de: https://msdn.microsoft.com/es-es/library/wkze6zky(v=vs.90).aspx
49
ESTE DOCUMENTO CONTIENE LA SEMANA 3
50
ESTE DOCUMENTO CONTIENE LA SEMANA 3