Sección de tutoriales y manuales vb

Control ImageCombo - Combobox con imágenes

Volver al índice



 

 

 

Guía que describe el uso del control imageCombo de vb

Contenido :

 

 

 

 

 

 


1 - Descripción del control

Con el control ImageCombo podemos además de añadir elementos como en un ComboBox normal, incluir imágenes asociadas a los mismos

 

por ejemplo como muestra el siguiente gráfico

 

En esta guía básica se verá un ejemplo simple de como utilizarlo y la descripción de los principales métodos y propiedades

 

Para incorporar el control se debe incluir el conjunto de ocx llamado Microsoft Windows Common Controls 6, desde el menú proyecto > Componentes

 

vista de la ventana de componentes de Visual basic

 


2 - Ejemplo para usar el control

 

Crear un nuevo proyecto Exe.

Añade en el formulario los siguientes controles:

 

Colocarlo mas o menos como está en la figura:

Vista previa del ejemplo

 

Ahora cargar en el control ImageList1 2 gráficos, a uno de los gráficos en la propiedad Key del ImageList asignale "Feliz" y al otro "Triste". O coloca las imagenes que quieras pero luego tendrás que cambiar las claves (Key)

 

Página de propiedades del control ImageList

Vista previa de las imagágenes del ImageList que se enlazará con el control Imagecombo

 

Nota: en estos enlaces podés descargar íconos y gráficos para usar con el control ImageCombo : Paquetes de íconos y otras utilidades

 

Selecciona el control ImageCombo y desde la ventana de propiedades de Visual Basic localiza la opción Custom o personalizado. Se te abrirá la Página de propiedades que configura las principales opciones del control. Lo que haremos es enlazar el control ImageCombo con el control ImageList1 desde la opción ImageList , como está en la imagen:

 

Vista previa de la página de propiedades del control ImageCombo de visual Basic

 

Ahora de acuerdo a la opción elegida en los OptionButton añadiremos un elemento al ImageCombo al hacer Click en el Command1.

Para agregar elementos se utiliza el método Add del objeto ComboItems. Luego se explican los parámetros:

Ahora pega el código en el evento click de este botón (El botón "Agregar" Command1)

Private Sub Command1_Click()

'Si el text1 está vacío salimos

If Text1 = "" Then MsgBox "ingrese un texto para el elemento", vbInformation, App.Title: Exit Sub

'Si esta todo Ok agregamos el elemento al ImageCombo
If Option1 Then

ImageCombo1.ComboItems.Add , , Text1, "feliz"

Else

ImageCombo1.ComboItems.Add , , Text1, "triste"

End If

End Sub

 


3 - Propiedades y métodos principales

 

Los parámetros del método Add del ImageCombo son:

ImageCombo1.ComboItems.Add Index, Key, Text, Image, SellImage, Indentation

 

El parámetro Index es opcional y especifica la posición donde agregar el elemento. Si no se especifica, se agrega al final, es decir en la última posición, como se hizo en el ejemplo.

La propiedad Key es la clave para identificar al elemento y también es una propiedad opcional

El parámetro Text es el Caption o texto del elemento. También es opcional, pero no tiene sentido agregar un elemento sin texto por lo general

El parámetro Image es la imagen que mostrará el elemento que estamos agregando , en este caso le pasamos la clave o Key que habíamos agregado en el control ImageList.

El parámetro SelImage es una gráfico opcional, que también lo podemos añadir en un control ImageList de la misma forma que lo hicimos para la propiedad Image, pero este gráfico se mostrará cuando el elemento del ImageCombo esté seleccionado.

Por ejemplo supongamos que agregamos un elemento x que muestra un gráfico con la propiedad Key en el ImageList "Grafico1", pero queremos que cuando se seleccione ese elemento x, muestre otro gráfico, por ejemplo uno llamado "Grafico2", lo haríamos así:

ImageCombo1.ComboItems.Add , , "El Texto del elemento", "Grafico1", "Grafico2"

 

Ahora para eliminar todos los elementos del ImageCombo que en el ejemplo lo ejecuta el Command2, utilizamos el método Clear.

'Eliminamos todos los elementos del control
ImageCombo1.ComboItems.Clear

 

Si quisiéremos remover o eliminar un elemento en particular, podemos usar el método Remove. Por ejemplo esto elimina el elemento número 2 del control ImageCombo:

ImageCombo1.ComboItems.Remove (2)

 

Nota: Hay que asegurarnos que el elemento existe dentro del control, de lo contrario nos dará un error 35600 "El índice está fuera de los límites".

Como te abrás dado cuenta hasta ahora, este control es prácticamente igual que los controles de lista, como el ComboBox, es decir comparten métodos y propiedades similares, con la diferencia de que el ImageCombo posee algunas mas opciones (opciones extra) ya que trabaja con las imágenes de los elementos.

Para recorrer todos los elementos del control lo podemos hacer mediante un Bucle For-Next y utilizando la propiedad Count que devuelve el la cantidad de elementos del ImageCombo.

Por ejemplo esto recorre todos los elementos y muestra un mensaje con el texto del mismo utilizando la propiedad Text.

Dim i As Integer

For i = 1 To ImageCombo1.ComboItems.Count

MsgBox ImageCombo1.ComboItems(i).Text

Next

End Sub

 

Este otro ejemplo añade 10 elementos, luego selecciona el elemento número 3 y por último le asigna a la propiedad Text del ImageCombo el elemento seleccionado usando la propiedades SelectedItem que devuelve el texto del que se encuentra seleccionado

 

Private Sub Command3_Click()
Dim i As Integer

'Agregamos 10 elementos sin imagen
For i = 1 To 10
ImageCombo1.ComboItems.Add , , "Elemento " & i
Next

'Seleccionamos el elemento 3 del imageCombo
ImageCombo1.ComboItems(3).Selected = True

'Le asignamos a la propiedad Text el elemento que está seleccionado
ImageCombo1.Text = ImageCombo1.SelectedItem

'Refrescamos el control
ImageCombo1.Refresh

End Sub

 

Para insertar una imagen a un elemento en tiempo de ejecución podemos usar la propiedad Image del objeto ComboItems

Siguiendo al ejemplo anterior, se agregan 5 elementos mediante un bucle y luego se le asigna al elemento 3 la imagen "Feliz que está en el ImageList:

 

Dim i As Integer

'Agregamos 5 elementos sin imagen


For i = 1 To 10
ImageCombo1.ComboItems.Add , , "Elemento " & i
Next

'Le establecemos la imagen pasandole la clave del gráfico que está en el ImageList al elemento 3

ImageCombo1.ComboItems(3).Image = "feliz"

 

4 - Sobre los eventos del ImageCombo

Los eventos de este control son exactamente iguales al los de un comboBox normal, es decir posee el evento click, el change etc...


Volver al índice

 

Recursos vb.net - enlaces relacionados

 

 


Buscar en Recursos vb