La Villa Digital: "El software es como el sexo: mejor si es libre y gratis" Linus Torvalds

A vueltas con .NET: ComboBox Multi-Columna

Aunque parezca mentira Visual Basic 2008 no incorpora por defecto un ComboBox capaz de mostrar varias columnas de datos. La única manera de hacerlo es programarlo nosotros mismos o buscar ese control por Internet.

Como ya os imaginais a estas alturas, no vamos a inventar nada que ya esté inventado y funcione perfectamente. Por tanto, vamos a añadir el control capaz de hacer lo que queremos y explicar cómo utilizarlo para mostrar los datos que nos interese. En nuestro caso vamos a utilizar el control Icon ComboBox, creado por Steve McMahon, de la conocida página vbaccelerator

iconcombobox

¿Cómo añadir el control a nuestro proyecto?

Lo primero será descargar el control.

Una vez descargado tenemos que añadir el control al toolbox de nuestro proyecto. Clickando con el botón derecho del ratón encima del toolbox marcamos “Choose Items“, dentro del nuevo menú le damos a Browse y seleccionamos el archivo .dll del control.

Llegados a éste punto tenemos el nuevo control añadido al toolbox y listo para usarse. Lo siguiente será añadir el control al formulario, declararlo, modificar los aspectos visuales y empezar a pasarle valores. Vamos a ello.

Añadir el control al formulario se hace igual que cualquier otro control de los que vienen por defecte en Visual Studio, por tanto arrastramos el control al formulario y empezamos a trabajar con él.

Declaramos el control. Como veis se trata de definir cuántas columnas va a tener el control y el espacio que van a ocupar:


Dim column As IconComboBoxColumn = New IconComboBoxColumn

'Por defecto el control ya trae una columna, sólo cambiamos su tamaño
IconComboDepartamento.Columns(0).ColumnWidth = 128

'Segunda columna
column.ColumnWidth = 32
IconComboDepartamento.Columns.Add(column)

'Tercera columna

column = New IconComboBoxColumn
column.ColumnWidth = 96
IconComboDepartamento.Columns.Add(column)

Ya tenemos el control declarado, ahora solo falta poblarlo y mostrarlo. El método para poblar el control consiste en añadirle Items, cada item es una linea del combobox y a cada item le añadiremos tantos subitems como columnas tengamos en el control. Con el ejemplo queda más claro.


Dim ici As IconComboItem = New IconComboItem
ici.Text = "Informática"

Dim subitem As IconComboSubItem = New IconComboSubItem
subitem.Text = "5 trabajadores"
ici.SubItems.Add(subitem)

subitem = New IconComboSubItem
subitem.Text = "Piso superior"
ici.SubItems.Add(subitem)

IconComboDepartamento.Items.Add(ici)

De éste manera hemos añadido una linea al combobox de 3 columnas.

Related posts:

  1. A vueltas con .NET: Minimizar formulario en la barra de tareas Desde hace algún algo más de un mes estoy aprendiendo...
  2. LiberKey, el multi-usos suizo de las aplicaciones portables Las aplicaciones portalbes están a la orden del día. Cada...
  3. A vueltas con .NET: Modificar Connection Strings en Runtime Esto del .NET me parece alucinante, la de cosas que...

Related posts brought to you by Yet Another Related Posts Plugin.

You can follow any responses to this entry through the RSS 2.0 feed.

Trackbacks / Pingbacks