Compartir a través de


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

A veces resulta útil mostrar datos en un formato fácil de usar en windows Forms, pero almacenar los datos en un formato que sea más significativo para el programa. Por ejemplo, un formulario de pedido para alimentos podría mostrar los elementos de menú por nombre en un cuadro de lista. Sin embargo, la tabla de datos que registra el pedido contendrá los números de identificación únicos que representan la comida. En las tablas siguientes se muestra un ejemplo de cómo almacenar y mostrar datos de formulario de pedido para alimentos.

Tabla de Detalles de Pedidos

ID de Pedido ID de ítem Cantidad
4085 12 1
4086 13 3

Tabla de Elementos

identificación Nombre
12 Patata
13 Pollo

En este escenario, una tabla, OrderDetailsTable, almacena la información real que le interesa mostrar y guardar. Pero para ahorrar espacio, lo hace de una manera bastante críptica. La otra tabla, ItemTable, contiene solo información relacionada con la apariencia sobre qué número de identificación es equivalente al nombre de la comida, y nada sobre los pedidos de alimentos reales.

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

OrderDetailsTable está conectado al control mediante su colección de vínculos, a la que se accede a través de la propiedad DataBindings. Al agregar un objeto de enlace a la colección, se conecta una propiedad de control a un miembro de datos específico (la columna de números de identificador) de un origen de datos ( OrderDetailsTable). Cuando se realiza una selección en el control , esta tabla es donde se guarda la entrada del formulario.

Para crear una tabla de búsqueda

  1. Agregue un ComboBoxcontrol , ListBoxo CheckedListBox al formulario.

  2. Conéctese al origen de datos.

  3. Establecer una relación de datos entre las dos tablas. Consulte Introducción a los objetos DataRelation.

  4. Configure las siguientes propiedades. Se pueden establecer en el código o en el diseñador.

    Propiedad Configuración
    DataSource Tabla que contiene información sobre qué número de identificador es equivalente a qué elemento. En el escenario anterior, se trata de ItemTable.
    DisplayMember Columna de la tabla de origen de datos que desea mostrar en el control . En el escenario anterior, esto es "Name" (para insertarlo en el código, use comillas).
    ValueMember Columna de la tabla de origen de datos que contiene la información almacenada. En el escenario anterior, esto es "ID" (para insertarlo en el código, use comillas).
  5. En un procedimiento, llame al Add método de la ControlBindingsCollection clase para enlazar la propiedad del SelectedValue control a la tabla que registra la entrada del formulario. También puede hacerlo en el Diseñador en lugar de en el código accediendo a la propiedad del DataBindings control en la ventana Propiedades . En el escenario anterior, es OrderDetailsTabley la columna es "ItemID".

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

Consulte también