Compartir a través de


Controles de varios elementos: trabajar con controles ListBox y ComboBox

Actualización: noviembre 2007

En esta lección, aprenderá a agregar y quitar elementos en las listas. También aprenderá a realizar una acción cuando un usuario seleccione un elemento de una lista.

Para proporcionar a los usuarios una lista de opciones, puede mostrar la lista de elementos en un control ListBox o en un control ComboBox.

Un control ListBox le permite mostrar varios elementos a la vez, de modo que los usuarios pueden desplazarse por una lista más larga. Cuando un usuario selecciona un elemento, éste se muestra resaltado en la lista, tal y como se muestra en la ilustración siguiente.

Control ListBox

Un control ComboBox es una combinación de un cuadro de texto y un cuadro de lista. De forma predeterminada, un cuadro combinado se muestra como un cuadro de texto, pero cuando los usuarios hacen clic en la flecha de lista desplegable, aparece una lista. Cuando un usuario selecciona un elemento, el elemento se resalta y se muestra visible en la vista predeterminada, tal y como se indica en la ilustración siguiente.

Control ComboBox

Los procesos para agregar elementos a los cuadros de lista y a los cuadros combinados son similares. Puede usar el método Add del control ListBox y el método Add del control ComboBox para agregar elementos.

Inténtelo.

Para agregar elementos a un cuadro de lista

  1. En el menú Archivo, haga clic en Nuevo proyecto.

    Aparecerá el cuadro de diálogo Nuevo proyecto.

  2. Haga clic en Aplicación de Windows Forms y, a continuación, en Aceptar.

    Se abrirá un nuevo proyecto de formularios Windows Forms.

  3. Agregue un control ListBox al formulario, manteniendo el nombre predeterminado, ListBox1.

  4. Haga doble clic en el formulario para agregar el controlador de eventos predeterminado en el Editor de código.

  5. En el controlador del evento Form_Load, agregue el siguiente código para agregar elementos a la lista.

    With Me.ListBox1.Items
        .Add("red")
        .Add("blue")
        .Add("green")
        .Add("yellow")
        .Add("orange")
        .Add("pink")
        .Add("brown")
        .Add("black")
    End With
    
  6. Presione F5 para ejecutar el programa.

    El formulario se abre y muestra ListBox, que contiene una lista de colores.

  7. Cierre el programa.

Realizar una acción cuando cambia el elemento seleccionado

Puede realizar una acción, como mostrar un color, cuando el usuario selecciona el elemento correspondiente en un cuadro de lista. Para ello, debe escribir código en el controlador del evento SelectedIndexChanged de ListBox. También hay un evento correspondiente para el control ComboBox.

Puede determinar el elemento de la lista que está seleccionado utilizando la propiedad SelectedItem. Puede asignar el color seleccionado en la lista a la propiedad BackColor de un control utilizando el método FromName del objeto Color.

Para mostrar el color seleccionado en el cuadro de lista

  1. Agregue un control TextBox al formulario, manteniendo el nombre predeterminado, TextBox1.

  2. Haga doble clic en el control ListBox para agregar el controlador de eventos predeterminado en el Editor de código.

  3. En el controlador del evento ListBox_SelectedIndexChanged, agregue el código siguiente para mostrar el color en el cuadro de texto. Asegúrese de que la variable ColorName contenga algún valor antes de asignársela a la propiedad BackColor del cuadro de texto.

    Dim ColorName As String = CStr(ListBox1.SelectedItem)
    
    If ColorName IsNot Nothing Then
        Me.TextBox1.BackColor = _
            System.Drawing.Color.FromName(ColorName)
    End If
    
  4. Presione F5 para ejecutar el programa.

  5. Cuando se abra el formulario, haga clic en un elemento del cuadro de lista para ver si se muestra el color seleccionado en el cuadro de texto.

  6. Cierre el programa.

Comprobar si un elemento existe en la lista

Al agregar elementos a una lista, lo normal es que no desee que haya elementos duplicados. Por ejemplo, es posible que desee los usuarios puedan copiar un elemento del cuadro de lista en un cuadro combinado haciendo doble clic en el elemento. Si el elemento ya está en el cuadro combinado, no debería agregarse de nuevo. Puede usar el método Contains para determinar si el elemento ya se encuentra en el cuadro combinado. También existe un método correspondiente Contains para el cuadro de lista.

Para agregar elementos a un cuadro combinado

  1. Agregue un control ComboBox al formulario, manteniendo el nombre predeterminado, ComboBox1.

  2. Abra el Editor de código haciendo clic con el botón secundario en el formulario y haciendo clic en Ver código.

  3. En el Editor de código, en la lista desplegable Nombre de clase, haga clic en ListBox1.

  4. En la lista desplegable Nombre de método, haga clic en DoubleClick para crear el controlador de eventos.

  5. Agregue el código siguiente al controlador del evento ListBox1_DoubleClick para agregar elementos al cuadro combinado. Puesto que el cuadro de lista podría estar vacío, antes de agregar el elemento seleccionado debería asegurarse de que no está vacío.

    If ListBox1.SelectedItem IsNot Nothing Then
        If Not ComboBox1.Items.Contains(Me.ListBox1.SelectedItem) Then
            Me.ComboBox1.Items.Add(Me.ListBox1.SelectedItem)
        End If
    
        Me.ComboBox1.SelectedItem = Me.ListBox1.SelectedItem
    
    End If
    
  6. Presione F5 para ejecutar el programa.

    Haga doble clic en los elementos del cuadro de lista y compruebe que sólo se agreguen una vez al cuadro combinado.

  7. Cierre el programa.

Eliminar un elemento de un cuadro de lista

Puede eliminar un elemento de un cuadro de lista utilizando el método Remove. Por ejemplo, en lugar de copiar los elementos de un cuadro de lista a un cuadro combinado, puede optar por moverlos. Para mover un elemento, primero debe agregarlo al cuadro combinado y, a continuación, eliminarlo del cuadro de lista.

Para eliminar elementos de un cuadro de lista

  1. Agregue el código siguiente sobre la instrucción End If del controlador del evento ListBox_DoubleClick.

    Me.ListBox1.Items.Remove(Me.ListBox1.SelectedItem)
    
  2. Presione F5 para ejecutar el programa.

  3. Haga doble clic en los elementos del cuadro de lista y compruebe que se hayan quitado del cuadro de lista y que se hayan agregado al cuadro combinado.

Pasos siguientes

En esta lección, ha aprendido a agregar y quitar elementos en las listas. También ha aprendido a realizar una acción cuando un usuario selecciona un elemento. En la lección siguiente, aprenderá a usar los controles que muestran la fecha y la hora.

Siguiente lección: Mostrar fechas: Usar los controles MonthCalendar y DateTimePicker

Vea también

Referencia

Información general sobre ListBox (Control, formularios Windows Forms)

Información general sobre el control ComboBox (formularios Windows Forms)

Otros recursos

Crear la apariencia visual de un programa: introducción a los formularios Windows Forms