Para mostrar en un TextBox el elemento seleccionado de un ListBox se utiliza la propiedad correspondiente al control de lista y se asigna su valor a la propiedad Text del cuadro de texto.
En un formulario de Visual Basic, la instrucción básica es TextBox1.Text = ListBox1.SelectedItem. En VBA para Excel, el valor seleccionado de un ListBox puede obtenerse mediante su propiedad Value, por ejemplo, strSelectedItem = Hoja1.lstListBox.Value.
Qué es un ListBox
El cuadro de lista o ListBox muestra una serie de valores con o sin una barra de desplazamiento y el usuario puede seleccionar uno o más de estos. Es un control que sirve para ingresar información y en el cuadro de herramientas se reconoce por el siguiente ícono.
En VBA, puede crear un Listbox donde un usuario puede elegir una de las opciones de la lista. Los cuadros de lista se utilizan a menudo en los formularios, pero también pueden utilizarse en una hoja de cálculo.
Agregar elementos a un ListBox
Para insertar un Listbox en la Hoja de Trabajo, debe ir a la sección Pestaña de Programador, hacer clic en Insertar y en Controles ActiveX elegir Cuadro de lista.
Cuando seleccione el Listbox que ha insertado, puede hacer clic en Propiedades en la pestaña Programador. Para empezar, cambiamos el atributo Name a lstListBox. Ahora, podemos usar el Listbox con este nombre en el código VBA.
Introducir elementos desde la ventana de propiedades
Agregue un control ListBox al formulario. Par introducir los Ítems puede hacerse de la siguiente manera: Desde código. Desde la ventana de propiedades. Directamente en el control.
Dé clic derecho en el control y verá el siguiente menú. Dé clic en Editar elementos y se desplegará la siguiente ventana de edición en la cual ya se escribieron algunos Ítems.
Para agregar los Ítems basta con escribir cada uno y luego presionar la tecla Enter y después clic en Aceptar. La ventana quedará así. Ahora presione F5 para ejecutar el programa y ver como queda la aplicación.
Introducir elementos mediante código
Los Ítems se pueden insertar en el ListBox usando código. La sintaxis es la siguiente:
ListBox.Items.Add (“Nombre del Item”)
Por ejemplo, con la siguiente instrucción se agregará el elemento “Ítem por código” en el listbox actual.
ListBox1.Items.Add("Item por Código")
Para escribirlo, abra el editor de código y en el evento Load del formulario escriba la instrucción anterior, esto es importante, El código debe ir en el form Load, no en el ListBox.
Si coloca el código en el ListBox, el efecto no será el esperado. Otra cosa importante es que el Ítem creado por código solo se ve en tiempo de ejecución cuando se carga el formulario.
Rellenar un ListBox en VBA
En la mayoría de los casos, un Listbox necesita ser rellenado cuando se abre el Libro de Trabajo. Debido a esto, necesitamos poner un código para poblar el Listbox en el objeto Workbook, procedimiento Open.
Este procedimiento se ejecuta cada vez que un usuario abre el Libro de Trabajo. Este es el código:
With Hoja1.lstListBox
.AddItem "John"
.AddItem "Michael"
.AddItem "Jennifer"
.AddItem "Lilly"
.AddItem "Robert"
End With
Como puedes ver en la Imagen 3, hemos rellenado nuestro Listbox con 5 nombres (John, Michael, Jennifer, Lilly y Robert).
Rellenar un ListBox desde un rango de celdas
Otra forma posible de rellenar un Listbox es dejar que el usuario lo haga. Un Listbox puede estar vinculado a un rango de celdas.
Por lo tanto, cada vez que un usuario introduzca un nuevo valor en el rango de celdas, el Listbox se actualizará con ese valor. Si quieres habilitar esto, tienes que ir a las Propiedades del ListBox y establecer el atributo ListFillRange.
Vinculamos nuestro Listbox con el rango E2:E6, donde ponemos los nombres que queremos (Pedro, Juan, Andrés, Diana, Ana). Como resultado, el Listbox está ahora poblado con estos nombres.
Obtener el valor seleccionado y mostrarlo en un TextBox
Ejemplo básico en Visual Basic
Para mostrar en un TextBox, un Item seleccionado en un ListBox se usa la instrucción ListBox.selectedItem.
Ejercicio: Ítem de ListBox a TextBox. Crear un nuevo proyecto con el nombre ListBoxItem a TextBox. Agregue un control ListBox y un TextBox.
Dé clic derecho en el control ListBox y luego en Editar elementos para que agregue los ítems con las palabras que se ven en la siguiente imagen. Dé doble clic en el control ListBox para que se abra el editor de código y escriba la siguiente instrucción entre Private Sub y End Sub del procedimiento.
Dim Product As String
Product = ListBox1.SelectedItem
TextBox1.Text = ListBox1.SelectedItem
En la primera línea del código anterior, se está declarando una variable Product del tipo String lo que significa que solo almacenará texto. Luego en la segunda línea, se asigna un valor a la variable, que será igual al Ítem seleccionado en el ListBox.
Por último en la tercera línea se utiliza la variable en el TextBox al instruir que el texto que se muestre en el TextBox sea igual al Ítem seleccionado. El código queda así.
Ejecute la aplicación y luego seleccione un Ítem ya sea dando clic, o con las teclas cursoras y observe como el Ítem seleccionado aparece en el TextBox.
Ejemplo en Excel VBA
El propósito de un Listbox es obtener la elección de un usuario. Para recuperar un valor seleccionado por un usuario, necesitas usar este código:
Dim strSelectedItem As Variant
strSelectedItem = Hoja1.lstListBox.Value
La selección del usuario está en el atributo Value del objeto Hoja1.lstListbox. Este valor se asigna a la variable strSelectedItem.
Seleccionamos a Harry en el Listbox y ejecutamos el procedimiento. Como puedes ver en la Imagen 5, el valor del strSelectedItem es Harry, que es el valor que hemos seleccionado. Además, puedes procesar esta variable en el código.
Asociar varias columnas del ListBox con varios TextBox
En Excel, la asociación puede hacerse cuando el ListBox muestra varias columnas y cada columna debe reflejarse en un cuadro de texto diferente.
Partiremos del trabajo realizado en la entrada anterior (ListBox con varias columnas y encabezados), donde llegamos a este diseño.
Accedemos al Editor de VB (Alt+F11) y dentro del Editor buscamos nuestro formulario UserForm1, activamos dicho formulario con lo que nos aparecerá el Cuadro de herramientas o controles.
En este buscaremos los siguientes controles:
- Marco (Frame): con este delimitaremos, y haremos independiente de otros controles, lo que incluyamos en él.
- Etiquetas (Labels): no editable, para nombrar los Cuadros de texto que situaremos a su lado.
- Cuadro de Texto (TextBox): donde vincularemos los valores seleccionados en el Cuadro de Lista (ListBox).
Bien, en ese orden, primero seleccionaremos el área del marco(Frame), para luego colocar tres etiquetas(Labels) y a su lado respectivamente tres Cuadro de Texto (TextBox), asociando cada uno de éstos a una columna del Cuadro de Lista (ListBox) que tenemos ya creado.
El diseño nos quedaría así. Una vez ha quedado acorde a nuestro control de calidad visual, podemos añadirle la funcionalidad buscada.
Configurar el formulario y los encabezados
En primer lugar, modifcaremos ciertas propiedades de los diferentes controles incluidos en nuestro formulario. En concreto cambiaremos los nombres que se muestran en las tres etiquetas por la cabecera o rótulos de la tabla origen de datos, también asignaremos un nombre definido por nosotros al Marco (O Frame):
Sub UserForm_Initialize()
Dim fila As Single
'le decimos cuántas columnas tendrá
ListBox1.ColumnCount = 3
'que sí que tiene encabezado
ListBox1.ColumnHeads = True
'el origen de datos en nuestra hoja de cálculo
ListBox1.RowSource = "Tabla1"
'renombramos el Marco
Frame1.Caption = "Datos seleccionados:"
'damos nombre a las etiquetas creadas, empleando la cabecera de la Tabla1
fila = ListBox1.ListIndex + 2
With Hoja1.Range(ListBox1.RowSource)
Label1.Caption = .Cells(fila, 1).Offset(-1, 0).Value
Label2.Caption = .Cells(fila, 2).Offset(-1, 0).Value
Label3.Caption = .Cells(fila, 3).Offset(-1, 0).Value
End With
End Sub
Rellenar los TextBox al seleccionar una fila
Ya sólo nos queda asignar una funcionalidad a nuestro Cuadro de Lista (ListBox1), y es que pretendemos que cada vez que seleccionemos un elemento de esa Lista, aparezca reflejado en los cuadros de texto, por supuesto, cada valor donde corresponda.
Esto lo conseguiremos con un evento click sobre el ListBox:
Private Sub ListBox1_Click()
fila = ListBox1.ListIndex + 2
With Hoja1.Range(ListBox1.RowSource)
TextBox1.Text = .Offset(ListBox1.ListIndex, 0).Resize(1, 1).Value
TextBox2.Text = .Offset(ListBox1.ListIndex, 1).Resize(1, 1).Value
TextBox3.Text = .Offset(ListBox1.ListIndex, 2).Resize(1, 1).Value
End With
End Sub
Y listo, ya esta nuestro formulario operativo, podremos comprobar cómo en cada ocasión que marquemos de entre los elementos del ListBox, los valores de éste se mostrarán en los Cuadros de Texto (TextBox) habilitados.
Por último remarcar que, al estar vinculado directamente a los valores de la Hoja de cálculo, cualquier cambio o modificación en alguno de los datos de la Tabla1 se veré reflejado sobre nuestro formulario, incluyendo, por supuesto los nombres de las tres Etiquetas (Labels).
Propiedades importantes del ListBox
BoundColumn
Dentro de un ListBox pueden desplegarse más de una columna de datos a la vez así como más de una fila. Cuando se establece el valor del BoundColumn este determinará la columna que se devuelve como el valor actual del ListBox.
Digamos que tenemos un ListBox con tres columnas y 10 filas de datos. Si fijamos el BoundColumn en 2 y luego seleccionamos la quinta fila, el valor actual de la lista sería lo que está en la fila 5 - Columna 3.
La razón es que sería la columna 3 y no la columna 2, porque la primera columna es siempre cero.
ColumnCount
Aquí es donde podemos establecer el número de columnas que serán mostradas. Fijar este valor en cero significa que ninguna columna será desplegada. Para mostrar todas las columnas se pude fijar este valor en -1.
RowSource
Es la localización a la que se encuentran enlazados los datos, por ejemplo, una celda en una hoja de cálculo. El valor actual de la fuente de los datos puede ser almacenado en la propiedad Value de un control.
Sin embargo, el control no almacena los datos, sino que sólo muestra la información que se almacena en la fuente de datos.
ColumnHeads
Esta condición puede ser verdadera o falsa. Si se establece en TRUE utilizará la primera fila de los datos como los encabezados de las columnas en el ListBox.
ColumnWidth
Determina el ancho que cada columna utilizará, los valores deben estar separados por ";" y deben estar expresados en unidades como cadenas de texto.
| Ejemplo | Descripción |
|---|---|
| 6 cm; 7 cm; 6 cm | Anchos independientes para tres columnas. |
| 1.5 in; 0.8; 2.5 in | Valores de ancho expresados como cadenas de texto. |
| blank | Por defecto todas la columnas tendrán el mismo ancho. |
ListStyle
Esta propiedad determina la forma en la que la lista se verá. Hay sólo dos opciones, fmListStylePlain o fmListStyleOption.
La primera es el valor por defecto y no tiene ningún efecto visual real. La segunda pondrá pequeños círculos a la derecha de cada elemento en el control ListBox que se selecciona al comprobar que el usuario ha hecho clic en el elemento.
MatchEntry
Esta propiedad se utiliza para ayudar al usuario en la búsqueda de un determinado elemento de la lista. Entra en vigor cuando el usuario empieza a escribir.
- fmMatchEntryFirstLetter (0): Coincidencia básica. Se busca la siguiente entrada que comienza con el carácter introducido. Escribir repetidamente la misma letra avanzará sobre todas las entradas que comienzan con ella.
- FmMatchEntryComplete (1): Concordancia ampliada. A medida que cada caracter es ingresado se buscan todas las palabras que coincidan con estos.
- FmMatchEntryNone (2): Sin concordancia.
MultiSelect
Esto determina si el usuario puede seleccionar más de un artículo en el ListBox.
- fmMultiSelectSingle(0): Sólo un ítem puede ser seleccionado.
- fmMultiSelectMulti(1): Presionar la barra espaciadora o hacer clic selecciona o anula la selección de un ítem.
- fmMultiSelectExtended(2): Al pulsar SHIFT y hacer clic con el ratón o pulsando la tecla SHIFT y una de las teclas de flecha, se extiende la selección desde el elemento seleccionado anteriormente hasta el elemento actual. Al presionar la tecla CTRL y hacer clic con el ratón se selecciona o anula la selección de un elemento.
TopIndex
Fija y/o devuelve el ítem que aparecerá en la parte superior de la lista. Así que si se tienen 10 filas, al establecer TopIndex en 5 el usuario sólo podrá ver las últimas 6 filas.
Trabajar con selecciones múltiples
Use la propiedad Selected de Visual Basic para determinar si está seleccionado un elemento de un cuadro de lista. Long de lectura y escritura.
La propiedad Selected es una matriz basada en ceros que contiene el estado seleccionado de cada elemento de un cuadro de lista. El primer elemento se representa con un cero (0), el segundo con un uno (1), etc.
| Configuración | Descripción |
|---|---|
| True | El elemento del cuadro de lista está seleccionado. |
| False | El elemento del cuadro de lista no está seleccionado. |
Esta propiedad sólo está disponible en tiempo de ejecución. Cuando la propiedad MultiSelect del control de un cuadro de lista se establece en None, solo el elemento puede tener su propiedad Selected establecida en True.
Cuando la propiedad MultiSelect del control de un cuadro de lista se establece en Simple o Extended, cualquiera o todos los elementos pueden tener su propiedad Selected establecida en True.
Un cuadro de lista de selección múltiple enlazado a un campo siempre tendrá una propiedad Value igual a Null. La propiedad Selected o la recopilación ItemsSelected se usa para recupera información sobre los elementos que están seleccionados.
Use la propiedad Selected para seleccionar elementos de un cuadro de lista mediante Visual Basic. Por ejemplo, la siguiente expresión selecciona el quinto elemento de la lista:
Me!Listbox.Selected(4) = True
Recorrer los elementos seleccionados
Con el nombre de las hojas en el ListBox, ahora podemos proceder a elegir cualquier elemento de la lista y presionando el botón Hoja elegida, se nos mostrará un cuadro de mensaje con el nombre elegido.
El siguiente código hará que mostremos el valor elegido:
Private Sub CommandButton2_Click()
'Botón Hoja elegida
'Declaramos variables
Dim Cuenta As Integer
Dim Numero As Integer
Dim j As Integer
Dim i As Integer
Cuenta = Me.ListBox1.ListCount
'Validamos que haya un elemento seleccionado.
For j = 0 To Cuenta - 1
If Me.ListBox1.Selected(j) = True Then Numero = Numero + 1
Next j
'La hoja seleccionada se pasará al ListBox de hojas visibles.
For i = 0 To Cuenta - 1
If Me.ListBox1.Selected(i) = True Then MsgBox Me.ListBox1.List(i), vbInformation, "EXCELeINFO"
Next i
End Sub
Copiar los elementos seleccionados a otro ListBox
En el ejemplo siguiente se usa la propiedad Selected para mover los elementos seleccionados del cuadro de lista lstSource al cuadro de lista lstDestination.
La propiedad RowSourceType del cuadro de lista lstDestination se establece en Lista de valores y la propiedad RowSource del control se construye a partir de todos los elementos seleccionados en el control lstSource.
La propiedad MultiSelect del cuadro de lista lstSource está establecida en Extendida. Se llama al procedimiento CopySelected( ) desde el botón de comando cmdCopyItem.
Private Sub cmdCopyItem_Click()
CopySelected Me
End Sub
Public Sub CopySelected(ByRef frm As Form)
Dim ctlSource As Control
Dim ctlDest As Control
Dim strItems As String
Dim intCurrentRow As Integer
Set ctlSource = frm!lstSource
Set ctlDest = frm!lstDestination
For intCurrentRow = 0 To ctlSource.ListCount - 1
If ctlSource.Selected(intCurrentRow) Then
strItems = strItems & ctlSource.Column(0, _
intCurrentRow) & ";"
End If
Next intCurrentRow
' Reset destination control's RowSource property.
ctlDest.RowSource = ""
ctlDest.RowSource = strItems
Set ctlSource = Nothing
Set ctlDest = Nothing
End Sub
Pasar varios elementos seleccionados a varios TextBox
Con la popiedad MultiSelect puedes seleccionar varios elementos del ListBox, pero contiguos. En tu ejemplo, eso no lo puedes hacer, tendrías que seleccionar gato, pájaro, gusano.
Lo mas idóneo es que le pongas la propiedad Style a 1-CheckBox y ahí sí podrás seleccionar items alternos. De todas formas, ¿cómo controlas a qué TextBox ha de ir cada elemento seleccionado?
Por ejemplo, imagina que tienes 3 TextBox y el usuario selecciona 4 elementos del ListBox, eso te dará error. Pienso que sería mejor que los seleccionados los fueras pasando a otro ListBox, ComboBox, ListView, Grid.
Estoy de acuerdo con Avellaneda, que sería mejor colocar los Ítems seleccionados en otro ListBox. Por ejemplo:
Dim Looping As Long
For Looping = 0 To ArtProvs.ListCount - 1
If ArtProvs.Selected(Looping) Then SelectedList.AddItem ArtProvs.List(Looping)
End If
Next Looping
Ahora bien, si necesitas que sea en TextBox, podrías crear una matriz de controles y cargar por cada Ítem seleccionado. No obstante, tendrías que escribir más código para posicionarlos correctamente.
Crear TextBox dinámicamente
Prueba con esto:
Dim Looping As Long
For Looping = 0 To ArtProvs.ListCount - 1
If ArtProvs.Selected(Looping) Then NewText ArtProvs.List(Looping)
End If
Next Looping
Sub NewText(ByVal Text As String)
'Cargamos un nuevo TextBox
Load Text1(Text1.Count)
'Ubicamos el TextBox debajo del último
Text1(Text1.Count - 1).Left = Text1(Text1(0).Left)
Text1(Text1.Count - 1).Top = Text1(Text1.Count - 2).Top + Text1(Text1(0).Height)
'Mostramos el TextBox cargado
Text1(Text1.Count - 1).Text = Text
Text1(Text1.Count - 1).Visible = True
End Sub
Debes tener un TextBox llamado Text1, debe ser una matriz.
Colocar los elementos seleccionados en TextBox consecutivos
Si cada elemento seleccionado debe ocupar el siguiente TextBox disponible, no se debe utilizar directamente el índice del elemento del ListBox para determinar el índice del TextBox.
El siguiente código coloca cada elemento seleccionado en ArtReq comenzando por el índice cero y aumenta el contador únicamente cuando encuentra un elemento seleccionado:
Private Sub ArtProvs_Click()
Dim Count As Long
Dim x As Long
Dim r, tmp
For x = 0 To ArtProvs.ListCount - 1
If ArtProvs.Selected(x) Then
ArtReq(Count).Text = ArtProvs.List(x)
Count = Count + 1
End If
Next x
End Sub
De esta forma, si se selecciona el elemento ArtProvs.List(2), se agregará al siguiente cuadro de texto disponible, como ArtReq(1).Text cuando corresponda según la cantidad de elementos seleccionados que ya se hayan procesado.
Usar el valor seleccionado en un botón
Este ejemplo contiene los siguientes controles:
- Formulario (UserForm). No es precisamente un control.
- Un cuadro de lista (ListBox).
- Dos botones (CommandButton).
Cómo funciona. Nuestro formulario se llama UserForm1, el cual primero llamaremos con la siguiente instrucción:
Private Sub CommandButton1_Click()
'Botón Formulario de Hoja1
UserForm1.Show
End Sub
Al mostrarte el formulario veremos dos botones. Si presionamos el que dice Llenar lista, el ListBox se llenará con el nombre de las hojas del archivo activo.
El código utilizado para llenar la lista es el siguiente:
'Botón Llenar lista
Private Sub CommandButton1_Click()
'Recorremos los nombres de las hojas
For Each Hoja In ActiveWorkbook.Sheets
Me.ListBox1.AddItem Hoja.Name
Next Hoja
End Sub
Con el nombre de las hojas en el ListBox, ahora podemos proceder a elegir cualquier elemento de la lista y presionando el botón Hoja elegida, se nos mostrará un cuadro de mensaje con el nombre elegido.
Eliminar los elementos de un ListBox
Para borrar un Listbox en VBA, necesitas utilizar el método Clear del objeto Hoja1.lstListBox. Esto borrará todos los elementos del Listbox.
Este es el código:
Sub BorrarListBox()
Hoja1.lstListBox.Clear
End Sub
Si el atributo ListFillRange está activado, el código anterior producirá un error. Tienes que borrar el atributo ListFillRange primero.
Configurar un ListBox mediante RowSource
Lo primero que debemos hacer es crear un nuevo UserForm y agregamos 3 cuadros de texto, un botón y por supuesto un ListView.
Enseguida ingresamos algunos datos en algunas de las hojas vacías de nuestro libro como se muestra a continuación. En las propiedades del ListBox debemos asegurarnos de fijar el ColumnCount en 3 debido a que tenemos tres columnas de datos que queremos mostrar.
Y por últimos el RowSource lo alimentamos con la dirección en la que se encuentra nuestra tabla de datos en este caso debemos ingresar el valor "Hoja2!A2:C9".
Por último programamos nuestro formulario de la siguiente forma. Ahora probamos el ListBox. Al hacer clic en el botón guardar luego de seleccionar una fila aparece un aviso que nos recuerda la elección.
Mostrar una imagen según el elemento seleccionado
Se puede hacer que se muestre un archivo de imagen en un PictureBox, seleccionando un Ítem en un ListBox usando el código ListBox.SelectedItem.
Ejercicio: Crear un nuevo proyecto con el nombre IDENTIDAD DE EL PROGRESO. Agregar al formulario, un PictureBox, un ListBox y un Label.
Cambie la propiedad Text del Label a Fotos De El Progreso, la propiedad BackColor a Verde y aumente el tamaño de las letras, modificando la propiedad Font. Cambie la propiedad Text del Formulario, a Album De Fotos.
En la pestaña de la esquina superior derecha del PictureBox elija en Aumentar tamaño, la opción StretchImage para que al mostrar la imagen se vea completa.
Agregar imágenes como recursos
Agregar recursos significa, incluir dentro de nuestro proyecto los archivos que se necesitan. Por ejemplo si en el PictureBox vamos a incluir imágenes, podemos agregarlas al proyecto; Evitando, al momento de ocuparlas, ir a buscarlas por rutas más “lejanas” o más difíciles de encontrar.
Para agregar las imágenes que se mostrarán en el PictureBox, y que queden como recursos del proyecto, abra la ventana de propiedades del proyecto desde el submenú Propiedades del proyecto del Menú Proyectos.
Se mostrará la siguiente ventana donde debe seleccionar Recursos en la columna de la Izquierda. En el Menú Agregar recurso elija el Submenú Agregar archivo existente.
En la ventana que se muestra busque un archivo de imagen de su computadora. Si las imágenes las tiene en una sola carpeta puede seleccionarlas todas y dar clic en Abrir para agregarlas de una sola vez, pero si están en rutas de archivo diferentes entonces agregue una cada vez.
Al agregar las imágenes se mostrarán los recursos parecidos a la siguiente imagen. Regrese al formulario de diseño, dando clic en el menú Form1.vb (diseño) que se encuentra en la parte superior de la ventana donde agregó las imágenes.
Relacionar el elemento seleccionado con la imagen
Los Ítems son los elementos que se mostrarán en el ListBox y que permitirá seleccionarlos y mostrar la imagen.
Para agregarlos se pueden usar tres métodos: Método 1. Clic derecho en el ListBox y luego clic en Editar elementos. Se abre la siguiente ventana donde escribirá un Ítem y luego presione la tecla Enter y escriba el siguiente Ítem y así sucesivamente.
Amplíe el control para que se vean los Ítems completos, pero déjelo de tal manera que solo se vean 4 Ítems. Si es necesario modifique el tamaño del formulario o del PictureBox. Modifique la propiedad Font del ListBox para visualizar mejor los Ítems.
El segundo método para agregar Ítems es accediendo a la propiedad Ítems del ListBox. Solo da clic en los puntos suspensivos de la derecha y lo llevará a la misma ventana del método 1 para editar Ítems.
Luego los escribe y da clic en Aceptar. Los Ítems se pueden insertar en el ListBox usando código.
Ahora inserte el código para que al seleccionar un Ítem en el ListBox se muestre la imagen en el PictureBox. Observe que primero se crea la variable con el nombre “I” y se deja como tipo Object o String.
El valor que tendrá la variable será igual al Ítem seleccionado. A continuación se hace uso de la estructura de decisión If…Then para que de acuerdo al ítem seleccionado se muestre la imagen correspondiente que ya tenemos en los recursos del proyecto.
Una vez que escribe My.Resources Se muestran los nombres de las imágenes que tiene entre los recursos del proyecto, para facilitarle la elección.
El código anterior debe ir entre Private Sub y End Sub del ListBox. Ejecute la aplicación y verá como aparecen todos los Ítems agregados, incluyendo el creado por código.
Puede utilizar la barra de desplazamiento del ListBox o las teclas cursoras para recorrer los Ítems.
Agregue el siguiente código para que se vea la siguiente imagen que ya tiene en recursos del proyecto, con el nombre de Edificio3, Pero recuerde, que debe agregar también el Ítem con el nombre de Municipalidad De El Progreso:
If ListBox1.SelectedItem = "Municipalidad De El Progreso" Then PictureBox1.Image = My.Resources.Edificio3
End If
Guarde el proyecto y ciérralo.
