Compartilhar via


Passar dados entre formulários

 

Publicado: agosto de 2016

Este passo a passo fornece instruções passo a passo para passar dados de um formulário para outro. Usando as tabelas customers e orders do Northwind permitirá que os usuários selecionem um cliente e um segundo formulário exibirá os pedidos do cliente selecionado. Este passo a passo mostra como criar um método em um formulário que recebe dados do primeiro formulário.

Dica

Este passo a passo demonstra apenas uma forma 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:

Pré-requisitos

Para concluir este passo a passo, você precisa:

Criando o aplicativo Windows

Para criar o novo projeto do Windows

  1. Do arquivo menu, crie um novo projeto.

  2. Nomeie o projeto PassingDataBetweenForms.

  3. Selecione Windows Forms Application e clique em OK. Para obter mais informações, consulte Aplicativos cliente.

    O PassingDataBetweenForms projeto é criado e adicionado ao Solution Explorer.

Criando a fonte de dados

Para criar a fonte de dados

  1. Sobre o dados menu, clique em Show Data Sources.

  2. No fontes de dados janela, selecione Add New Data Source para iniciar o Data Source Configuration Wizard.

  3. Selecione banco de dados sobre o Escolher um tipo de fonte de dados página e, em seguida, clique em próximo.

  4. No Escolher um modelo de banco de dados Verifique Dataset for especificado e, em seguida, clique em próximo.

  5. Sobre o Escolha sua conexão de dados página, siga um destes procedimentos:

    • 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.

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

  7. Clique em próximo sobre o Salvar cadeia de conexão no arquivo de configuração do aplicativo página.

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

  9. Selecione o clientes e pedidos tabelas e clique Concluir.

    O NorthwindDataSet é adicionado ao seu projeto e o clientes e tabelas de pedidos aparecem no fontes de dados janela.

Criando o primeiro formulário (Form1)

Você pode criar uma grade associada a dados (um DataGridView controle) arrastando o clientes nó a partir de fontes de dados window para o formulário.

Para criar uma grade associada a dados no formulário

Criando o segundo formulário (Form2)

Para criar um segundo formulário para passar os dados

  1. Do projeto menu, escolha Adicionar formulário do Windows.

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

  3. Arraste principal pedidos nó a partir de fontes de dados window para Form2.

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

  4. Excluir o OrdersBindingNavigator da bandeja de componentes.

    O OrdersBindingNavigator desaparece da Form2.

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

Para criar uma consulta TableAdapter

  1. Clique duas vezes o NorthwindDataSet arquivo Solution Explorer.

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

  3. Deixe a opção padrão usar instruções SQL, e, em seguida, clique em próximo.

  4. Deixe a opção padrão SELECT que retorna linhas, e, em seguida, clique em próximo.

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

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

    Dica

    Verifique a sintaxe de parâmetro corretos para seu banco de dados. Por exemplo, no Microsoft Access, a cláusula WHERE seria algo como: WHERE CustomerID = ?.

  6. Clique em Avançar.

  7. Para o preencher uma DataTablenome do método, tipo FillByCustomerID.

  8. Limpar o retornar uma DataTable opção e, em seguida, clique em próximo.

  9. Clique em Concluir.

Criando um método no Form2 para passar dados

Para criar um método para passar dados

  1. Clique com botão direito Form2 e selecione Exibir código abrir Form2 no Editor de códigos.

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

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

Criando 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 botão direito da grade de dados do cliente e, em seguida, clique em propriedades.

  2. No propriedades janela, clique em eventos.

  3. Clique duas vezes o CellDoubleClick eventos.

    O editor de código é exibido.

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

            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();
            }
    
        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
    

Executar o aplicativo

Para executar o aplicativo

  • Pressione F5 para executar o aplicativo.

  • Clique duas vezes em um registro de cliente no Form1 abrir Form2 com os pedidos do cliente.

Próximas etapas

Dependendo dos requisitos de aplicativo, há várias etapas que você talvez queira realizar após passar dados entre formulários. Alguns aprimoramentos que você poderia fazer neste passo a passo incluem:

Consulte também

Associar controles dos Windows Forms a dados no Visual Studio