Como: Criar uma tabela de pesquisa para um Windows Forms ComboBox, ListBox, ou controle CheckedListBox

Às vezes é útil exibir dados em um formato amigável em um formulário do Windows, mas armazenar os dados em um formato que seja mais significativo para o seu programa. Por exemplo, um formulário de pedido de alimentos pode exibir os itens de menu por nome em uma caixa de listagem. No entanto, a tabela de dados, a ordem de gravação conteria os números de identificação exclusivos que representa a comida. As tabelas a seguir mostram um exemplo de como armazenar e exibir dados de formulário de pedido de alimentos.

OrderDetailsTable

Código Do Pedido

ItemID

Quantidade

4085

12

1

4086

13

3

ItemTable

ID

Nome

12

Batata

13

Frango

Nesse cenário, uma tabela, OrderDetailsTable, armazena as informações reais que você está preocupado com a exibição e salvar. Mas, para economizar espaço, ele faz isso de maneira bastante complexa. Outra tabela, ItemTable, contém somente informações relacionadas a aparência sobre qual número de identificação é equivalente à qual nome de alimentos e ordens de nada sobre a comida real.

O ItemTable está conectado a ComboBox, ListBox, ou CheckedListBox controle por meio de três propriedades. O DataSource propriedade contém o nome da tabela. O DisplayMember propriedade contém a coluna de dados da tabela que você deseja exibir no controle (o nome de alimentos). O ValueMember propriedade contém a coluna de dados dessa tabela com as informações armazenadas (o número de identificação).

O OrderDetailsTable está conectado ao controle por sua coleção de ligações, acessada através do DataBindings propriedade. Quando você adiciona um objeto de vinculação à coleção, você conectar a uma propriedade de controle para um membro de dados específicos (a coluna de números de identificação) em uma fonte de dados (o OrderDetailsTable). Quando uma seleção é feita no controle, esta tabela é onde a entrada de formulário foi salvo.

Para criar uma tabela de pesquisa

  1. Adicionar um ComboBox, ListBox, ou CheckedListBox o controle para o formulário.

  2. Conectar-se à fonte de dados.

  3. Estabelece uma relação entre duas tabelas de dados. Para obter mais informações, consulte Introdução aos objetos DataRelation e Introdução aos objetos DataRelation e Introdução aos objetos DataRelation e Introdução aos objetos DataRelation e Introdução a objetos DataRelation.

  4. Defina as propriedades a seguintes. Pode ser definidas no código ou no designer.

    Propriedade

    Configuração

    DataSource

    A tabela que contém informações sobre qual ID número equivale a qual item. No cenário anterior, isso é ItemTable.

    DisplayMember

    A coluna da tabela de origem de dados que você deseja exibir no controle. No cenário anterior, isso é "Name" (para definir no código, use aspas).

    ValueMember

    A coluna da tabela de origem de dados que contém as informações armazenadas. No cenário anterior, isso é "ID" (para definir no código, use aspas).

  5. Em um procedimento de chamada a Add método o ControlBindingsCollection classe para vincular o controle SelectedValue propriedade à tabela de gravação da entrada de formulário. Você também pode fazer isso no Designer, em vez de no código, acessando o controle DataBindings propriedade de Propriedades janela. No cenário anterior, isso é OrderDetailsTable, e a coluna é "ItemID".

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

Consulte também

Referência

Visão geral do controle ListBox (Windows Forms)

Visão geral do controle ComboBox (Windows Forms)

Visão geral do controle CheckedListBox (Windows Forms)

Conceitos

Ligação de dados e o Windows Forms

Outros recursos

Usado para opções da lista de controles do Windows Forms