Partilhar via


Instruções passo a passo: criando um controle de usuário dos Windows Forms que dá suporte à vinculação de dados de pesquisa

Ao exibir dados no Windows Forms, você pode escolher os controles existentes da Caixa de Ferramentas ou criar controles personalizados se seu aplicativo exigir alguma funcionalidade que não esteja disponível nos controles padrão. Este passo a passo mostra como criar um controle que implementa o LookupBindingPropertiesAttribute. Os controles que implementam o LookupBindingPropertiesAttribute contêm três propriedade que podem ser associadas 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 associação de dados, é necessário implementar um dos seguintes atributos de associação de dados:

Uso do atributo de associação de dados

Implemente o DefaultBindingPropertyAttribute em controles simples, como um TextBox, que exibe uma única coluna (ou propriedade) de dados. Para obter mais informações, consulte Instruções passo a passo: criando um controle de usuário dos Windows Forms que dá suporte à vinculação de dados simples.

Implemente o ComplexBindingPropertiesAttribute nos controles, como um DataGridView que exibe listas (ou tabelas) de dados. Para obter mais informações, consulte Instruções passo a passo: criando um controle de usuário dos Windows Forms que dá suporte à vinculação de dados complexos.

Implemente o LookupBindingPropertiesAttribute nos controles, como um ComboBoxque exibe listas (ou tabelas) de dados, mas também precisa apresentar uma única coluna ou propriedade. (Esse processo é descrito nesta página de passo a passo.)

Este passo a passo cria um controle de pesquisa que se associa aos dados de duas tabelas. Este exemplo usa as tabelas Customers e Orders do banco de dados de exemplo Northwind. O controle de pesquisa será associado ao campo CustomerID da tabela Orders. Ele usará este valor para pesquisar CompanyName na tabela Customers.

Durante este passo a passo, você aprenderá a:

  • Criar um novo Aplicativo do Windows.

  • Adicionar um novo Controle de Usuário ao projeto.

  • Projetar visualmente o controle do usuário.

  • Implementar o atributo LookupBindingProperty.

  • Criar um conjunto de dados com o Assistente para Configuração da Fonte de Dados.

  • Definir a coluna CustomerID na tabela Pedidos na janela Fontes de Dados para usar o novo controle.

  • Criar um formulário para exibir dados no novo controle.

Pré-requisitos

Para concluir este passo a passo, você precisará de:

Criando um aplicativo do Windows

A primeira etapa é criar um Aplicativo do Windows.

Para criar o novo projeto do Windows

  1. No Visual Studio, no menu Arquivo, crie um novo Projeto.

  2. Nomeie o projeto como LookupControlWalkthrough.

  3. Selecione Aplicativo do Windows e clique em OK. Para obter mais informações, consulte Implementando aplicativos cliente com o .NET Framework.

    O projeto LookupControlWalkthrough é criado e adicionado ao Gerenciador de Soluções.

Adicionando um controle de usuário ao projeto

Este passo a passo cria um controle de pesquisa a partir de um Controle de Usuário, portanto, adicione um item de Controle de Usuário ao projeto LookupControlWalkthrough.

Para adicionar um controle de usuário ao projeto

  1. No menu Projeto, selecione Adicionar Controle do Usuário.

  2. Digite LookupBox na área Nome e clique em Adicionar.

    O controle LookupBox é adicionado ao Gerenciador de Soluções e abre no designer.

Projetando o controle LookupBox

Para projetar o controle LookupBox

  • Arraste um ComboBox da Caixa de Ferramentas para a superfície de design do controle de usuário.

Adicionando o atributo obrigatório de associação de dados

Para controles de pesquisa que suportam associação de dados, você pode implementar o LookupBindingPropertiesAttribute.

Para implementar o atributo LookupBindingProperties

  1. Alterne o controle LookupBox para exibição de código. (No menu Exibir, escolha Código.)

  2. Substitua o código no LookupBox pelo seguinte:

    <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
    
    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();
            }
        }
    }
    
  3. No menu Compilar, escolha Compilar Solução.

Criando uma fonte de dados a partir de seu banco de dados

Esta etapa cria uma fonte de dados usando o Assistente de Configuração de Fonte de Dados com base nas tabelas Customers e Orders no banco de dados de exemplo Northwind. É preciso 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 Como instalar bancos de dados de exemplo.

Para criar a fonte de dados

  1. No menu Dados, clique em Mostrar Fontes de Dados.

  2. Na janela Fontes de Dados, selecione Adicionar Nova Fonte de Dados para iniciar o Assistente de Configuração de Fonte de Dados.

  3. Selecione Base de dados na página Escolher um Tipo de Fonte de Dados e, em seguida, clique em Próximo.

  4. Sobre o Escolha sua conexão de dados página faça o seguinte:

    • Se uma conexão de dados no 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.

  5. Se o banco de dados exigir uma senha, selecione a opção para incluir dados confidenciais e, em seguida, clique em Próximo.

  6. Clique em Avançar na página Salvar cadeia de caracteres de conexão no arquivo de configuração do aplicativo.

  7. Expanda o nó Tabelas na página Escolher Objetos do Banco de Dados.

  8. Selecione as tabelas Customers e Orders e, em seguida, clique em Concluir.

    O NorthwindDataSet é adicionado ao projeto e as tabelas Customers e Orders aparecem na janela Fontes de Dados.

Definindo a coluna CustomerID da tabela Pedidos para usar o controle LookupBox

Na janela Fontes de Dados, você pode definir o controle a ser criado antes de arrastar itens para seu formulário.

Para definir a coluna CustomerID para se associar ao controle LookupBox

  1. Abra Form1 no designer.

  2. Expanda o nó Clientes na janela Fontes de Dados.

  3. Expanda o nó Pedidos (no nó Clientes abaixo da coluna Fax).

  4. Clique na seta suspensa no nó Pedidos e escolha Detalhes na lista de controle.

  5. Clique na seta suspensa na coluna CustomerID (no nó Pedidos) e escolha Personalizar.

  6. Selecione LookupBox na lista de Controles Associados na caixa de diálogo Opções de Personalização da IU de Dados.

  7. Clique em OK.

  8. Clique na seta suspensa na coluna CustomerID e escolha LookupBox.

Adicionando controles ao formulário

É possível criar controles de associação de dados ao arrastar itens da janela Fontes de Dados para Form1.

Para criar controles de associação de dados no Windows Form

  • Arraste o nó Pedidos da janela Fontes de Dados para o Windows Form e verifique se o controle LookupBox é usado para exibir dados na coluna CustomerID.

Associando o controle para pesquisar o nome da empresa na tabela de clientes

Para configurar associações de pesquisa

  • Selecione o nó principal Clientes na janela Fontes de Dados e arraste-o para a caixa de combinação em CustomerIDLookupBox no Form1.

    Isso configura a associação de dados para exibir o CompanyName da tabela Customers mantendo, ao mesmo tempo, o valor CustomerID da tabela Orders. Para obter mais informações, consulte Como criar tabelas de pesquisa em aplicativos dos Windows Forms.

Executando o aplicativo

Para executar o aplicativo

  • Pressione F5 para executar o aplicativo.

  • Navegue por alguns registros e verifique se CompanyName aparece no controle LookupBox.

Consulte também

Tarefas

Como definir o controle a ser criado quando arrastado da janela Fontes de Dados

Conceitos

Associando controles dos Windows Forms a dados no Visual Studio

Preparando o aplicativo para receber dados

Buscando dados no aplicativo

Associando controles a dados no Visual Studio

Editando dados no aplicativo

Validando dados

Salvando dados

Outros recursos

Conectando a dados no Visual Studio