Cómo: Crear una tabla de búsqueda para un control ComboBox, ListBox o CheckedListBox de Windows Forms

Actualización: noviembre 2007

A veces resulta útil mostrar en un formulario Windows Forms y con un formato sencillo para el usuario datos que están almacenados en un formato más significativo para el programa. Por ejemplo, un formulario de pedido de comida puede mostrar los elementos del menú por su nombre en un cuadro de lista. Sin embargo, la tabla de datos que registra el pedido contendrá los números de identificador únicos que representan la comida. Las tablas siguientes muestran un ejemplo de cómo almacenar y mostrar datos de un formulario de pedido sobre comida.

OrderDetailsTable

OrderID

ItemID

Quantity

4085

12

1

4086

13

3

ItemTable

ID

Name

12

Patatas

13

Pollo

En este escenario, una tabla, OrderDetailsTable, almacena la información real que interesa mostrar y guardar. Pero para ahorrar espacio, lo hace en un modo bastante críptico. La otra tabla, ItemTable, contiene sólo información relativa al aspecto sobre qué número de identificador equivale a qué nombre de comida, y nada sobre los pedidos de comida.

La tabla ItemTable está conectada con el control ComboBox, ListBox o CheckedListBox mediante tres propiedades. La propiedad DataSource contiene el nombre de esta tabla. La propiedad DisplayMember contiene la columna de datos de esa tabla que desea mostrar en el control (el nombre de la comida). La propiedad ValueMember contiene la columna de datos de esa tabla que incluye la información almacenada (el número de identificador).

La tabla OrderDetailsTable está conectada al control mediante su colección de enlaces, a la que se obtiene acceso gracias a la propiedad DataBindings. Cuando se agrega un objeto de enlace a la colección, se conecta una propiedad del control con un miembro de datos determinado (la columna de los números de identificador) de un origen de datos (la tabla OrderDetailsTable). Cuando se realiza una selección en el control, esta tabla es donde se guarda la entrada ejecutada en el formulario.

Para crear una tabla de búsqueda

  1. Agregue un control ComboBox, ListBox o CheckedListBox al formulario.

  2. Conéctese con el origen de datos.

  3. Establezca una relación de datos entre las dos tablas.

  4. Establezca las siguientes propiedades, que pueden establecerse en código o en el diseñador.

    Propiedad

    Valor

    DataSource

    La tabla que contiene información sobre qué número de identificador equivale a qué elemento. En el escenario anterior, esta tabla es ItemTable.

    DisplayMember

    La columna de la tabla de origen de datos que desea mostrar en el control. En el escenario anterior, es "Name" (para establecerla en el código, use comillas).

    ValueMember

    La columna de la tabla del origen de datos que contiene la información almacenada. En el escenario anterior, es "ID" (para establecerla en el código, use comillas).

  5. En un procedimiento, llame al método Add de la clase ControlBindingsCollection para enlazar la propiedad SelectedValue del control con la tabla que registre la entrada realizada en el formulario. También puede hacer esto en el Diseñador en lugar de en código, teniendo acceso a la propiedad DataBindings del control en la ventana Propiedades. En el escenario anterior, ésta es OrderDetailsTable y la columna es "ItemID".

    ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")
    
    listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");
    
    listBox1.get_DataBindings().Add("SelectedValue", OrderDetailsTable, "ItemID");
    

Vea también

Conceptos

Enlace de datos y formularios Windows Forms

Referencia

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

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

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

Otros recursos

Controles de formularios Windows Forms usados para mostrar opciones