Demonstra Passo a passo: Passando dados entre Windows Forms

Esta explicação passo a passo fornece instruções passo a passo para a passagem de dados de um formulário para outro. Usando as tabelas de clientes e de pedidos do Northwind irá permitindo que usuários selecione um cliente e um segundo formulário será exibidos com os pedidos do cliente selecionado. Este explicação passo a passo mostra como criar um método em um formulário que recebe dados do primeiro formulário.

ObservaçãoObservação

Esta explicação passo a passo demonstra somente uma maneira de passar dados entre formulários. Existem outras opções para passar dados para um formulário, incluindo estes métodos: Você pode criar um segundo construtor para receber dados, ou você pode criar uma propriedade pública que pode ser definida com dados do primeiro formulário.

As tarefas ilustradas neste passo a passo incluem:

  • Criando um novo projeto Windows Application.

  • Criar e configurar um DataSet com o Assistente de Configuração de Fonte de Dados.

  • Selecionando o controle a ser criado no formulário ao arrastar itens a partir da janela Data Sources. Para obter mais informações, consulte Como: Definir o controle a ser criado ao arrastar da janela Data Sources.

  • Criar um controle vinculado a dados, arrastando itens da janela Data Sources em um formulário.

  • Criar um segundo formulário com uma grade para exibir dados.

  • Criar uma consulta TableAdapter para buscar pedidos para um cliente específico.

  • Passando dados entre formulários.

Pré-requisitos

Para concluir esta explicação passo a passo, você precisa:

Criando o aplicativo Windows

Para criar o novo projeto Windows

  1. No menu File, crie um novo projeto.

  2. Nome do projeto PassingDataBetweenForms.

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

    O projeto PassingDataBetweenForms é criado e adicionado Solution Explorer.

Criando o DataSet

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. No Escolher um modelo de banco de dados de página, verifique Dataset for especificado e, em seguida, clique em próximo.

  5. 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).

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

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

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

  9. Selecione as tabelas Customers e Orders, e clique Finish.

    O NorthwindDataSet é adicionado ao seu projeto e as tabelas Customers e Orders aparecem na janela Data Sources.

Criando o First Form (Form1)

Você pode criar uma grade vinculada a dados (um controle DataGridView) arrastando o nó Customers da janela Data Sources para o formulário.

Para criar uma grade vinculada a dados no formulário

Criando o Second Form (Form2)

Para criar um segundo formulário para passar os dados

  1. No menu Project, escolha Add Windows Form.

  2. Deixe o nome padrão Form2 e clique em Add.

  3. Arraste o nó principal Orders da janela Data Sources em Form2.

    Um DataGridView e uma faixa de ferramenta (BindingNavigator) para navegar em registros aparecem no Form2. Um NorthwindDataSet,CustomersTableAdapter, BindingSource e BindingNavigator aparecem na bandeja de componentes.

  4. Excluir a OrdersBindingNavigator da bandeja de componentes

    O OrdersBindingNavigator desaparece do Form2.

Adicionar uma consulta TableAdapter ao Form2 para carregar pedidos do cliente selecionado no Form1

Para criar uma consulta TableAdapter

  1. Clique duas vezes no arquivo NorthwindDataSet.xsd no Solution Explorer.

  2. Clique com o botão direito do mouse em OrdersTableAdapter e selecione Add Query.

  3. Deixe a opção padrão Use SQL statements, e clique Next.

  4. Deixe a opção padrão SELECT which returns rows, e clique Next.

  5. Adicione uma cláusula WHERE para a consulta retornar Orders com base no CustomerID. A consulta deve ser semelhante à seguinte:

    SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry
    FROM Orders 
    WHERE CustomerID = @CustomerID
    
    ObservaçãoObservação

    Verifique a correta sintaxe de parâmetro para seu banco de dados. Por exemplo, no Microsoft Access, a cláusula WHERE iria parecer: WHERE CustomerID = ?.

  6. Clique em Next.

  7. Para o Fill a DataTable Method Name, digite FillByCustomerID.

  8. Limpe a opção Return a DataTable, e clique Next.

  9. Clique em Finish.

Criando um método no Form2 para passar dados

Para criar um método para passar dados

  1. Clique com o botão direito do mouse no Form2 e selecione View Code para abrir Form2 no Code Editor.

  2. Adicione o seguinte código para Form2 após o Form2_Load método:

    Friend Sub LoadOrders(ByVal CustomerID As String)
        OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID)
    End Sub
    
    internal void LoadOrders(String CustomerID)
    {
        ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID);
    }
    

Criar um método no Form1 para passar dados e exibir o Form2

Para criar um método para passar dados para o Form2

  1. Em Form1, clique com o botão direito na grade de dados do cliente e, em seguida, clique em Propriedades.

  2. No Propriedades janela, clique em eventos.

  3. Clique duas vezes o CellDoubleClick evento.

    O editor de código aparece.

  4. Atualize a definição de método para coincidir com o exemplo a seguir:

    Private Sub CustomersDataGridView_DoubleClick() Handles CustomersDataGridView.DoubleClick
    
        Dim SelectedRowView As Data.DataRowView
        Dim SelectedRow As NorthwindDataSet.CustomersRow
    
        SelectedRowView = CType(CustomersBindingSource.Current, System.Data.DataRowView)
        SelectedRow = CType(SelectedRowView.Row, NorthwindDataSet.CustomersRow)
    
        Dim OrdersForm As New Form2
        OrdersForm.LoadOrders(SelectedRow.CustomerID)
        OrdersForm.Show()
    End Sub
    
    private void customersDataGridView_DoubleClick(object sender, EventArgs e)
    {
        System.Data.DataRowView SelectedRowView;
        NorthwindDataSet.CustomersRow SelectedRow;
    
        SelectedRowView = (System.Data.DataRowView)customersBindingSource.Current;
        SelectedRow = (NorthwindDataSet.CustomersRow)SelectedRowView.Row;
    
        Form2 OrdersForm = new Form2();
        OrdersForm.LoadOrders(SelectedRow.CustomerID);
        OrdersForm.Show();
    }
    

Executar o aplicativo

Para executar o aplicativo

  • Pressione F5 para executar o aplicativo.

  • Clique duas vezes um registro no Form1 para abrir o Form2 com os pedidos desse cliente.

Próximas etapas

Dependendo dos seus requisitos do aplicativo, existem várias etapas que podem ser executadas após a passagem de dados entre formulários. Alguns aprimoramentos que você poderia fazer a essa explicação passo a passo incluem:

Consulte também

Conceitos

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

Visão geral sobre fontes de dados

Visão geral do TableAdapter

Controles de vinculação de dados de Visual Studio

Outros recursos

Explicações Passo a passo sobre Dados

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

Histórico de alterações

Date

History

Motivo

Março de 2011

Eliminados os erros no código de exemplo.

Comentários do cliente.