Usuário com melhor resposta
Transferência de dados entre formulários

Pergunta
-
Estou tentando transferir valores de um segundo form, aberto pelo primeiro, porém não está dando certo.
Private Sub btn_Transfere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Transfere.Click If dgv_Logradouros.SelectedRows.Count > 0 Then transfereDados() MessageBox.Show("Logradouro selecionado, informado com sucesso", "Atenção", MessageBoxButtons.OK) Me.Close() Else MessageBox.Show("Não há logradouro selecionado!", "Atenção", MessageBoxButtons.OK) End If End Sub Private Sub transfereDados() If _formOrigem.Name = "frm_Fornecedores" Then Dim f As frm_Fornecedores = New frm_Fornecedores f.txtLogradouro.Text = Me.dgv_Logradouros.CurrentRow.Cells(1).Value f.txtBairro.Text = Me.dgv_Logradouros.CurrentRow.Cells(3).Value f.txtCEP.Text = Me.dgv_Logradouros.CurrentRow.Cells(4).Value f.txtUF.Text = Me.cbo_UF.Text f.txtCidade.Text = Me.cbo_Cidade.Text ElseIf _formOrigem.Name = "frm_Clientes" Then End If End Sub
Sergio Ivanenko
Respostas
-
Dá uma olhada no artigo que fiz no meu Blog sobre iss, como passar parâmetros entre formulários.
http://www.maestrodotnet.com.br/?p=329
Bruno Ferreira de Souza
MSP - Microsoft Student Partner
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro- Marcado como Resposta Ivanenko domingo, 1 de maio de 2011 14:00
Todas as Respostas
-
Passa o seu form1 no construtor de quando vc instancia o form2. No form2 deixa uma variavel global do tipo Form1. Ai voce atribui o form1 que veio como parametro no metodo contrutor para apontar para a variavel gloabl. Ai voce manipula ela baseado na variavel global.
-
Dá uma olhada no artigo que fiz no meu Blog sobre iss, como passar parâmetros entre formulários.
http://www.maestrodotnet.com.br/?p=329
Bruno Ferreira de Souza
MSP - Microsoft Student Partner
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro- Marcado como Resposta Ivanenko domingo, 1 de maio de 2011 14:00
-
Bruno.Funcionou perfeitamente. Para devolução dos valores pelo segundo form aberto, como os valores devolvidos são seis, comcatenei os mesmos e no formulário usando ";" como delimitador. E para identificar estes valores utilizei a função SPLIT.Obrigado.
No Form1: Dim frm As New frm_BuscaLogradouros frm.FormOrigem = Me frm.ShowDialog() Dim strREC As String = frm.ValorDevolvido If IsNothing(strREC) Then Exit Sub Dim strSPLIT() As String = Split(strREC, ";") idLogra = strSPLIT(0) Me.txtLogradouro.Text = strSPLIT(1) Me.txtBairro.Text = strSPLIT(2) Me.txtCEP.Text = strSPLIT(3) Me.txtUF.Text = strSPLIT(4) Me.txtCidade.Text = strSPLIT(5) No Form2 (Devolvendo valores): Dim strDEV As String Dim f As frm_Fornecedores = New frm_Fornecedores strDEV = Me.dgv_Logradouros.CurrentRow.Cells(0).Value.ToString strDEV = strDEV + ";" + Me.dgv_Logradouros.CurrentRow.Cells(1).Value strDEV = strDEV + ";" + Me.dgv_Logradouros.CurrentRow.Cells(3).Value strDEV = strDEV + ";" + Me.dgv_Logradouros.CurrentRow.Cells(4).Value strDEV = strDEV + ";" + Me.cbo_UF.Text strDEV = strDEV + ";" + Me.cbo_Cidade.Text
Sergio Ivanenko -
Ok, você poderia também ter criado uma propriedade para cada campo que queria retornar e pegar os valores de cada 1 como no exemplo. ;)
Bruno Ferreira de Souza
MSP - Microsoft Student Partner
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro