Criar um controle de usuário do Windows Forms que dá suporte à vinculação de dados de pesquisa
Publicado: abril de 2016
Ao exibir dados em Windows Forms, você pode escolher os controles existentes da Toolbox, ou você pode criar controles personalizados se seu aplicativo requer funcionalidade não disponível nos controles padrão. Este passo a passo mostra como criar um controle que implementa o LookupBindingPropertiesAttribute. Controles que implementam o LookupBindingPropertiesAttribute pode conter três propriedades que podem ser vinculadas a dados. Tais controles são semelhantes a um ComboBox.
Para obter mais informações sobre criação de controle, consulte Desenvolvendo controles dos Windows Forms na hora de design.
Ao criar controles para uso em cenários de ligação de dados, que você precisa implementar um dos seguintes atributos de vinculação de dados:
Uso do atributo de vinculação de dados |
---|
Implementar o DefaultBindingPropertyAttribute em controles simples, como um TextBox, que exibe uma única coluna (ou propriedade) de dados. Para obter mais informações, consulte Criar um controle de usuário do Windows Forms que dá suporte à vinculação de dados simples. |
Implementar o ComplexBindingPropertiesAttribute nos controles, como um DataGridView, que exibe listas (ou tabelas) de dados. Para obter mais informações, consulte Criar um controle de usuário do Windows Forms que dá suporte à vinculação de dados complexos. |
Implementar o LookupBindingPropertiesAttribute nos controles, como um ComboBox, que exibe listas (ou tabelas) de dados, mas também precisa apresentar uma única coluna ou propriedade. (Esse processo é descrito nesta página de explicação passo a passo.) |
Este passo a passo cria um controle de pesquisa que associa dados de duas tabelas. Este exemplo usa o Customers
e Orders
tabelas do banco de dados de exemplo Northwind. O controle de pesquisa será associado para o CustomerID
campo do Orders
tabela. Ele usará este valor para pesquisar o CompanyName
do Customers
tabela.
Durante essa explicação passo a passo, você aprenderá como:
Criar um novo Windows Application.
Adicione um novo controle de usuário ao seu projeto.
Crie visualmente o controle de usuário.
Implementar o
LookupBindingProperty
atributo.Criar um conjunto de dados com o Data Source Configuration Wizard.
Definir o CustomerID coluna o pedidos na tabela o fontes de dados janela para usar o novo controle.
Crie um formulário para exibir dados no novo controle.
Pré-requisitos
Para concluir este passo a passo, você precisará de:
- Acesso ao banco de dados de exemplo Northwind.
Criando um aplicativo do Windows
A primeira etapa é criar um Windows Application.
Para criar o novo projeto do Windows
No Visual Studio, do arquivo menu, crie um novo projeto.
Nomeie o projeto LookupControlWalkthrough.
Selecione Windows Forms Application e clique em OK.
O LookupControlWalkthrough projeto é criado e adicionado ao Solution Explorer.
Adicionando um controle de usuário ao projeto
Este passo a passo cria um controle de pesquisa de um controle de usuário, para adicionar um controle de usuário item para o LookupControlWalkthrough projeto.
Para adicionar um controle de usuário ao projeto
Do projeto menu, selecione Adicionar controle do usuário.
Tipo
LookupBox
no nome área e clique Add.O LookupBox controle é adicionado à Solution Explorer e abre no designer.
Criar o controle LookupBox
Para criar o controle LookupBox
- Arraste um ComboBox do Toolbox na superfície de design do controle de usuário.
Adicionando o atributo de vinculação de dados requerido
Para controles de pesquisa que suportam associação de dados, você pode implementar o LookupBindingPropertiesAttribute.
Para implementar o atributo LookupBindingProperties
Opção de LookupBox controle de exibição de código. (No exibição menu, escolha código.)
Substitua o código no
LookupBox
com o seguinte:using System.Windows.Forms; namespace CS { [System.ComponentModel.LookupBindingProperties("DataSource", "DisplayMember", "ValueMember", "LookupMember")] public partial class LookupBox : UserControl { public object DataSource { get{ return comboBox1.DataSource; } set{ comboBox1.DataSource = value; } } public string DisplayMember { get{ return comboBox1.DisplayMember; } set{ comboBox1.DisplayMember = value; } } public string ValueMember { get{ return comboBox1.ValueMember; } set{ comboBox1.ValueMember = value; } } public string LookupMember { get{ return comboBox1.SelectedValue.ToString(); } set{ comboBox1.SelectedValue = value; } } public LookupBox() { InitializeComponent(); } } }
<System.ComponentModel.LookupBindingProperties("DataSource", "DisplayMember", "ValueMember", "LookupMember")> Public Class LookupBox Public Property DataSource() As Object Get Return ComboBox1.DataSource End Get Set(ByVal value As Object) ComboBox1.DataSource = value End Set End Property Public Property DisplayMember() As String Get Return ComboBox1.DisplayMember End Get Set(ByVal value As String) ComboBox1.DisplayMember = value End Set End Property Public Property ValueMember() As String Get Return ComboBox1.ValueMember End Get Set(ByVal value As String) ComboBox1.ValueMember = value End Set End Property Public Property LookupMember() As String Get Return ComboBox1.SelectedValue.ToString() End Get Set(ByVal value As String) ComboBox1.SelectedValue = value End Set End Property End Class
Do criar menu, escolha Build Solution.
Criando uma fonte de dados do banco de dados
Essa etapa cria uma fonte de dados usando o Data Source Configuration Wizard com base no Customers
e Orders
tabelas no banco de dados de exemplo Northwind. Você deve ter acesso ao banco de dados de exemplo Northwind para criar a conexão. Para obter informações sobre como configurar o banco de dados de exemplo Northwind, consulte Install SQL Server sample databases.
Para criar a fonte de dados
Sobre o dados menu, clique em Show Data Sources.
No fontes de dados janela, selecione Add New Data Source para iniciar o Data Source Configuration Wizard.
Selecione banco de dados sobre o Escolher um tipo de fonte de dados página e, em seguida, clique em próximo.
Sobre o Escolha sua conexão de dados página faça o seguinte:
Se uma conexão de dados para o banco de dados de exemplo Northwind estiver disponível na lista suspensa, selecione-o.
- ou -
Selecione nova conexão para iniciar o Adicionar/Modificar conexão caixa de diálogo.
Se seu banco de dados exigir uma senha, selecione a opção para incluir dados confidenciais e, em seguida, clique em próximo.
Clique em próximo sobre o Salvar cadeia de conexão no arquivo de configuração do aplicativo página.
Expanda o tabelas nó o Choose your Database Objects página.
Selecione o
Customers
eOrders
tabelas e clique Concluir.O NorthwindDataSet é adicionado ao seu projeto e a
Customers
eOrders
as tabelas aparecem no fontes de dados janela.
Definindo a coluna CustomerID da tabela Orders para usar o controle LookupBox
Dentro de fontes de dados janela você pode definir o controle a ser criado antes de arrastar itens para seu formulário.
Para definir a coluna CustomerID para associar ao controle LookupBox
Abra Form1 no designer.
Expanda o clientes nó o fontes de dados janela.
Expanda o pedidos nó (no clientes abaixo do nó de Fax coluna).
Clique na seta suspensa no pedidos nó e escolha detalhes na lista de controle.
Clique na seta suspensa no CustomerID coluna (no pedidos nó) e escolha Personalizar.
Selecione o LookupBox da lista de controles associados no Opções de personalização da interface do usuário de dados caixa de diálogo.
Clique em OK.
Clique na seta suspensa no CustomerID coluna e escolha LookupBox.
Adicionando controles ao formulário
Você pode criar os controles associados a dados arrastando itens do fontes de dados window para Form1.
Para criar controles ligados a dados no Windows Form
- Arraste o pedidos nó a partir o fontes de dados window para o formulário do Windows e verifique o LookupBox controle é usado para exibir os dados no
CustomerID
coluna.
Vinculando o controle para pesquisar o CompanyName da tabela Customers
Para configurar as associações de pesquisa
Selecione principal clientes nó o fontes de dados janela e arraste-a para a caixa de combinação caixa a CustomerIDLookupBox em Form1.
Isso configura a associação de dados para exibir o
CompanyName
doCustomers
tabela mantendo oCustomerID
o valor doOrders
tabela.
Executando o aplicativo
Para executar o aplicativo
Pressione F5 para executar o aplicativo.
Navegue em alguns registros e verifique o
CompanyName
aparece noLookupBox
controle.
Consulte também
Associar controles dos Windows Forms a dados no Visual Studio