Como: Criar uma tabela de pesquisa para um controle ComboBox, ListBox ou CheckedListBox do Windows Forms
Às vezes, é útil exibir dados em um formato amigável em um Windows Form, mas armazenar os dados em um formato que seja mais significativo para o seu programa. Por exemplo, um formulário de pedido de comida pode exibir os itens de menu por nome em uma caixa de listagem. No entanto, a tabela de dados que regista a encomenda conteria os números de identificação únicos que representam o alimento. As tabelas a seguir mostram um exemplo de como armazenar e exibir dados de formulário de pedido para alimentos.
Tabela de Detalhes do Pedido
ID do Pedido | ID do item | Quantidade |
---|---|---|
4085 | 12 | 1 |
4086 | 13 | 3 |
Tabela de Itens
Identificação | Nome |
---|---|
12 | Batata |
13 | Frango |
Nesse cenário, uma tabela, OrderDetailsTable, armazena as informações reais que você está preocupado em exibir e salvar. Mas, para poupar espaço, fá-lo de uma forma bastante enigmática. A outra tabela, ItemTable, contém apenas informações relacionadas à aparência sobre qual número de identificação é equivalente a qual nome de alimento, e nada sobre os pedidos de comida reais.
O ItemTable está conectado ao controle ComboBox, ListBoxou CheckedListBox por meio de três propriedades. A propriedade DataSource
contém o nome desta tabela. A propriedade DisplayMember
contém a coluna de dados dessa tabela que você deseja exibir no controle (o nome do alimento). A propriedade ValueMember
contém a coluna de dados dessa tabela com as informações armazenadas (o número de ID).
O OrderDetailsTable está ligado ao controlo pela sua coleção de associações, acedida por meio da propriedade DataBindings. Ao adicionar um objeto de vinculação à coleção, você conecta uma propriedade de controle a um membro de dados específico (a coluna de números de ID) em uma fonte de dados (o OrderDetailsTable). Quando uma seleção é feita no controle, esta tabela é onde a entrada do formulário é salva.
Para criar uma tabela de pesquisa
Adicione um controle ComboBox, ListBoxou CheckedListBox ao formulário.
Conecte-se à sua fonte de dados.
Estabeleça uma relação de dados entre as duas tabelas. Consulte Introdução aos objetos DataRelation.
Defina as seguintes propriedades. Eles podem ser definidos em código ou no designer.
Propriedade Cenário DataSource A tabela que contém informações sobre qual número de ID é equivalente a qual item. No cenário anterior, isso é ItemTable
.DisplayMember A coluna da tabela da fonte 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 da fonte de dados que contém as informações armazenadas. No cenário anterior, isso é "ID"
(para definir no código, use aspas).Em um procedimento, chame o método Add da classe ControlBindingsCollection para vincular a propriedade SelectedValue do controle à tabela que registra a entrada do formulário. Você também pode fazer isso no Designer em vez de no código, acessando a propriedade
do controle na janela Propriedades . No cenário anterior, isso é OrderDetailsTable
e a coluna é"ItemID"
.ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")
listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");
Ver também
- vinculação de dados e Windows Forms
- Visão geral do controle ListBox
- Visão geral do controle ComboBox
- Visão geral do controle CheckedListBox
- Controles do Windows Forms usados para listar opções
.NET Desktop feedback