Compartilhar via


Demonstra Passo a passo: Criando um controle de usuário do Windows Forms a ligação de dados que suporta pesquisa

Ao exibir dados em formulários do Windows, você pode escolher os controles existentes da Toolbox, ou você pode criar controles personalizados se seu aplicativo requer funcionalidade que não está disponível nos controles padrão. Essa explicação passo a passo mostra como criar um controle que implementa o LookupBindingPropertiesAttribute. Controles que implementam o LookupBindingPropertiesAttribute podem conter uma propriedade que pode ser vinculada a dados. Tais controles são semelhantes a um ComboBox ou .

Para obter mais informações sobre criação de controle, consulte Desenvolvendo controles Windows Forms em tempo de Design.

Ao criar controles para uso em cenários de ligação de dados você precisará implementar um dos seguintes atributos do databinding:

Uso do atributo DataBinding

Implemente o DefaultBindingPropertyAttribute em controles simples, como um TextBox, que exibe uma única coluna (ou propriedade) de dados. Para obter mais informações, consulte Demonstra Passo a passo: Criando um controle de usuário do Windows Forms que suporta a vinculação de dados simples.

Implemente o ComplexBindingPropertiesAttribute em controles, como um DataGridView, que exibe listas (ou tabelas) de dados. Para obter mais informações, consulte Demonstra Passo a passo: Criando um controle de usuário do Windows Forms que suporta a vinculação de dados complexos.

Implemente o LookupBindingPropertiesAttribute em 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.)

Esta explicação passo a passo cria um controle de pesquisa que vincula dados de duas tabelas. Esse exemplo usa as tabelas Customers e Orders do banco de dados de amostra Northwind. O controle de pesquisa estará vinculado ao campo CustomerID da tabela Orders. Ele usará este valor para pesquisar o CompanyName na tabela Customers.

Durante este explicação passo a passo, você aprenderá como:

  • Criar um novo Windows Application.

  • Adicionar um novo User Control para o projeto.

  • Criar visualmente o controle de usuário.

  • Implementar o atributo LookupBindingProperty.

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

  • Definir a coluna CustomerID na tabela Orders na janela Data Sources para usar o novo controle.

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

Pré-requisitos

A fim de concluir este explicação passo a passo, será necessário:

Criando um Aplicativo Windows

A primeira etapa é criar um Windows Application.

Para criar o novo projeto Windows

  1. No Visual Studio, a partir do menu File, crie um novo Project.

  2. Nome do projeto LookupControlWalkthrough.

  3. Selecione Windows Application e clique em OK. Para obter mais informações, consulte Criando Aplicativos Baseados no Windows.

    O projeto LookupControlWalkthrough é criado e adicionado Solution Explorer.

Adicionar um controle de usuário ao projeto

Esta explicação passo a passo cria um controle de pesquisa User Control, para adicionar um item User Control ao projeto LookupControlWalkthrough

Para adicionar um controle de usuário ao projeto

  1. No menu Project, selecione Add User Control.

  2. Digite LookupBox na área Name, e clique Add.

    O controle LookupBox é adicionado ao Solution Explorer e abre no designer.

Criar o controle LookupBox

Para criar o controle LookupBox

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

Adicionando o atributo de vinculação de dados requerido

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

Para implementar o atributo LookupBindingProperties

  1. Alternar o controle LookupBox para modo de exibição do código. (No menu View, escolha Code).

  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 Build, escolha Build Solution.

Crie uma fonte de dados no seu banco de dados

Essa etapa cria uma fonte de dados usando o Data Source Configuration Wizard baseado nas tabelas Customers e Orders no banco de dados de exemplos Northwind. Você deve ter acesso ao banco de dados de exemplos 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 amostra.

Para criar a fonte de dados

  1. No menu Data, clique em Show Data Sources.

  2. Na janela Data Sources, selecione Add New Data Source para iniciar o Data Source Configuration Wizard.

  3. Selecione Database na página Choose a Data Source Type, e clique Next.

  4. Na página Choose your Data Connection siga um destes procedimentos:

    • Se uma conexão de dados para o banco de dados de exemplo Northwind estiver disponível na lista drop-down, selecione-o.

      - ou -

    • Selecione New Connection para iniciar a caixa Add/Modify Connection. Para obter mais informações, consulte Adicionar/modificar a caixa de diálogo de conexão (geral).

  5. Se seu banco de dados exigir uma senha, selecione a opção para incluir dados confidenciais, e clique Next.

  6. Clique Next na página Save connection string to the Application Configuration file.

  7. Expanda o nó Tables na página Choose your Database Objects.

  8. Selecione as tabelas Customers e Orders, e clique em Finish.

    O NorthwindDataSet é adicionado ao seu projeto e o Customers e Orders tabelas aparecem na Fontes de dados janela.

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

Dentro da janela Data Sources você pode definir o controle a ser criado, antes de arrastar itens para seu formulário.

Definir vinculação da coluna CustomerID ao controle LookupBox

  1. Abra o Form1 no designer.

  2. Expanda o nó Customers na janela Data Sources.

  3. Expanda o nó Orders (aquele nó Customers abaixo da coluna Fax).

  4. Clique na seta suspensa no nó Orders e escolha Details a partir da lista de controle.

  5. Clique na seta suspensa na coluna CustomerID (no nó Orders) e escolha Customize.

  6. Do LookupBox selecione a lista de Associated Controls na caixa de diálogo Data UI Customization Options.

  7. Clique em OK.

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

Adicionar os controles ao formulário

Você pode criar os controles com dados vinculados, arrastando itens da janela Data Sources para Form1.

Para criar controles de dados vinculados no Windows Form

  • Arraste o nó Orders da janela Data Sources para o Formulário do Windows e verifique que o controle LookupBox é utilizado para exibir os dados na coluna CustomerID.

Vinculando o controle para pesquisar o Nome da Companhia na tabela Clientes

Para configurar as vinculações de pesquisa

  • Selecione o nó Customers principal na janela Data Sources e arraste-o para a caixa de combinação na CustomerIDLookupBox no Form1.

    Isso configura a vinculação de dados para exibir o CompanyName a partir da tabela Customers mantendo o valor CustomerID da tabela Orders. Para obter mais informações, consulte Como: Criar tabelas de pesquisa em aplicativos do Windows Forms.

Executando o aplicativo

Para executar o aplicativo

  • Pressione F5 para executar o aplicativo.

  • Navegue em alguns registros e verifique que o CompanyName aparece no controle LookupBox.

Consulte também

Tarefas

Como: Definir o controle a ser criado ao arrastar da janela Data Sources

Conceitos

O que há de novo no desenvolvimento de aplicativos de dados

Vinculação de controles do Windows Forms a dados em Visual Studio

Controles de vinculação de dados de Visual Studio

Outros recursos

Conectando-se a Dados no Visual Studio

Preparando seu aplicativo para receber dados

Buscando dados em seu aplicativo

Editar dados no seu aplicativo

Validando Dados

Salvando dados