Instruções passo a passo: passando dados entre Windows Forms
Este passo a passo fornece instruções detalhadas de como passar os dados de um formulário para outro. Usando as tabelas Customers e Orders do Northwind, um formulário 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 os dados do primeiro formulário.
Dica
Este passo a passo demonstra apenas uma maneira de passar dados entre formulários.Existem outras opções para passar dados para um formulário, como estas abordagens: você pode criar um segundo construtor para receber dados ou criar uma propriedade pública que pode ser definida com os dados do primeiro formulário.
As tarefas ilustradas neste passo a passo incluem:
Criando um novo projeto de Aplicativo do Windows.
Criando e configurando um dataset com o Assistente para Configuração da Fonte de Dados.
Selecionando o controle a ser criado no formulário ao arrastar itens da janela Fontes de Dados. Para obter mais informações, consulte Como definir o controle a ser criado quando arrastado da janela Fontes de Dados.
Criar controles de associação de dados arrastando itens da janela Fontes de Dados para um formulário.
Criar um segundo formulário com uma grade para exibir dados.
Criar uma consulta TableAdapter para buscar pedidos de um cliente específico.
Passar dados entre formulários.
Pré-requisitos
Para concluir este passo a passo, você precisará de:
- Acesso ao banco de dados de exemplo Northwind. Para obter mais informações, consulte Como instalar bancos de dados de exemplo.
Criando o aplicativo do Windows
Para criar o novo projeto do Windows
No menu Arquivo, crie um novo projeto.
Nomeie o projeto PassingDataBetweenForms.
Selecione Aplicativo do Windows Forms e clique em OK. Para obter mais informações, consulte Implementando aplicativos cliente com o .NET Framework.
O projeto PassingDataBetweenForms é criado e adicionado ao Gerenciador de Soluções.
Criando a Fonte de Dados
Para criar a fonte de dados
No menu Dados, clique em Mostrar Fontes de Dados.
Na janela Fontes de Dados, selecione Adicionar Nova Fonte de Dados para iniciar o Assistente de Configuração de Fonte de Dados.
Selecione Base de dados na página Escolher um Tipo de Fonte de Dados e, em seguida, clique em Próximo.
Na página Escolha um Modelo de Banco de Dados, verifique se o Conjunto de dados foi especificado e clique em Avançar.
Sobre o Escolha sua conexão de dados página, siga um destes procedimentos:
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.
Se o banco de dados exigir uma senha e a opção para incluir dados confidenciais estiver habilitada, clique em Avançar.
Clique em Avançar na página Salvar cadeia de caracteres de conexão no arquivo de configuração do aplicativo.
Expanda o nó Tabelas na página Escolher Objetos do Banco de Dados.
Selecione as tabelas Customers e Orders e, em seguida, clique em Finalizar.
O NorthwindDataSet é adicionado ao projeto e as tabelas Customers e Orders aparecem na janela Fontes de Dados.
Criando o primeiro formulário (Form1)
Você pode criar uma grade de associação de dados (um controle DataGridView), arrastando o nó Clientes da janela Fontes de Dados para o formulário.
Para criar uma grade de associação de dados no formulário
Arraste o nó principal Clientes da janela Fontes de Dados para Form1.
Um DataGridView e uma faixa de ferramentas (BindingNavigator) para navegação em registros são exibidos no Form1. Um NorthwindDataSet, CustomersTableAdapter, BindingSource e BindingNavigator são exibidos na bandeja de componentes.
Criando o segundo formulário (Form2)
Para criar um segundo formulário para o qual passar os dados
No menu Projeto, escolha Adicionar Formulários do Windows.
Deixe o nome padrão Form2 e clique em Adicionar.
Arraste o nó principal Pedidos da janela Fontes de Dados para Form2.
Um DataGridView e uma faixa de ferramentas (BindingNavigator) para navegação em registros são exibidos no Form2. Um NorthwindDataSet, CustomersTableAdapter, BindingSource e BindingNavigator são exibidos na bandeja de componentes.
Exclua o OrdersBindingNavigator da bandeja de componentes.
O OrdersBindingNavigator desaparece do Form2.
Adicionando uma consulta TableAdapter ao Form2 para carregar pedidos do cliente selecionado no Form1
Para criar uma consulta TableAdapter
Clique duas vezes no arquivo NorthwindDataSet.xsd no Gerenciador de Soluções.
Clique com o botão direito do mouse no OrdersTableAdapter e selecione Adicionar Consulta.
Deixe a opção padrão Usar instruções SQL e clique em Avançar.
Deixe a opção padrão SELECT que retorna linhas e clique em Avançar.
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 correta para o seu banco de dados.Por exemplo, no Microsoft Access, a cláusula WHERE seria algo como: WHERE CustomerID = ?.
Clique em Avançar.
Para o Nome do Método Preencher uma DataTable, digite FillByCustomerID.
Desmarque a opção Retornar uma DataTable e clique em Avançar.
Clique em Finalizar.
Criando um método no Form2 para o qual passar dados
Para criar um método para o qual passar dados
Clique com o botão direito do mouse no Form2 e selecione Exibir Código para abrir o Form2 no Editor de Códigos.
Adicione o seguinte código ao Form2 depois do método Form2_Load:
Friend Sub LoadOrders(ByVal CustomerID As String) OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID) End Sub
internal void LoadOrders(String CustomerID) { ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID); }
Criando um método no Form1 para passar dados e exibir o Form2
Para criar um método para passar dados para o Form2
No Form1, clique com o botão direito do mouse na grade de dados Cliente e clique em Propriedades.
Na janela Propriedades, clique em Eventos.
Clique duas vezes no evento CellDoubleClick.
O Editor de Códigos é exibido.
Atualize a definição de método para corresponder ao seguinte exemplo:
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 em um registro de cliente no Form1 para abrir o Form2 com pedidos do cliente.
Próximas etapas
Dependendo dos requisitos de aplicativo, existem várias etapas que você talvez queira realizar após passar dados entre formulários. Entre algumas das melhorias que você poderia fazer nessa explicação passo a passo estão:
Editar o conjunto de dados, para adicionar ou remover objetos de banco de dados. Para obter mais informações, consulte Como editar um conjunto de dados.
Adicionar funcionalidade para salvar dados de volta no banco de dados. Para obter mais informações, consulte Como salvar as alterações no conjunto de dados em um banco de dados.
Consulte também
Conceitos
Associando controles dos Windows Forms a dados no Visual Studio
Visão geral de fontes de dados
Preparando o aplicativo para receber dados
Associando controles a dados no Visual Studio