Usuário com melhor resposta
Como passar um OBJETO quando o usuario fechar o Form2 para o Form1?

Pergunta
-
Bom dia a todos da comunidade, gostaria de saber se é possivel passar um "objeto" do Form2 para o Form1.
Quando o usuario fechar o FORM2 o FORM1 recebe um "objeto" do FORM2, agradeço desde já a todos!!!
Obrigado
Gustavo Vieira Akatsu, Analista de Sistemas
Respostas
-
Olá!
Você pode criar uma propriedade pública no FORM2, do objeto que deseja, e no retorno no FORM1 acessar a propriedade a partir da instância do FORM2. Por exemplo:
//No FORM2 você cria esta propriedade public int IdSelecionado{get{return retornoDoObjeto;}} //No FORM1, você escreveria o código da chamada assim FORM2 form2 = new FORM2(); if (form2.ShowDialog() == DialogResult.Ok) { int idSelecionado = form2.IdSelecionado; }
Seria por aí..
Bom trabalho!
- Sugerido como Resposta Lucas Vandor quarta-feira, 16 de setembro de 2015 14:33
- Marcado como Resposta Levi DomingosModerator quarta-feira, 16 de setembro de 2015 15:26
- Não Marcado como Resposta Gustavo X quinta-feira, 17 de setembro de 2015 14:26
- Marcado como Resposta Gustavo X quinta-feira, 17 de setembro de 2015 14:36
-
Rodrigo... tentei de outra forma e deu certo... mas obrigado pela dica... foi por voce que eu consegui chegar no resultado...
Code:
//No FORM2 você cria esta propriedade public int IdSelecionado{get{return retornoDoObjeto;}} //No FORM1, você escreveria o código da chamada assim FORM2 form2 = new FORM2(); if (form2.ShowDialog() == DialogResult.Cancel) // <=== Aqui é cancel. Obrigado { int idSelecionado = form2.IdSelecionado; }
Gustavo Vieira Akatsu, Analista de Sistemas
- Marcado como Resposta Gustavo X quinta-feira, 17 de setembro de 2015 14:36
-
Um exemplo:
class MeuForm {
private List<Cidade> cidades;
public MeuForm() { cidades = new List<Cidade>(); } public void AdicionarCidade() { using (var frmCidade = new FrmCidade()) { frmCidade.ShowDialog(); if (frmCidade.Tag != null) cidades.Add(frmCidade.Tag as Cidade); } } }
Neste caso, no form frmCidade eu seleciono uma cidade qualquer numa lista...
class FrmCidade() { private void btnSelecionar_Click(object sender, EventArgs e) { this.Tag = lista.Find(cid => cid.Id == int.Parse(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["Id"].Value.ToString())); this.Close(); } }
- Editado Marcos Gerene sexta-feira, 18 de setembro de 2015 14:34
- Marcado como Resposta Gustavo X sábado, 19 de setembro de 2015 15:00
Todas as Respostas
-
Olá!
Você pode criar uma propriedade pública no FORM2, do objeto que deseja, e no retorno no FORM1 acessar a propriedade a partir da instância do FORM2. Por exemplo:
//No FORM2 você cria esta propriedade public int IdSelecionado{get{return retornoDoObjeto;}} //No FORM1, você escreveria o código da chamada assim FORM2 form2 = new FORM2(); if (form2.ShowDialog() == DialogResult.Ok) { int idSelecionado = form2.IdSelecionado; }
Seria por aí..
Bom trabalho!
- Sugerido como Resposta Lucas Vandor quarta-feira, 16 de setembro de 2015 14:33
- Marcado como Resposta Levi DomingosModerator quarta-feira, 16 de setembro de 2015 15:26
- Não Marcado como Resposta Gustavo X quinta-feira, 17 de setembro de 2015 14:26
- Marcado como Resposta Gustavo X quinta-feira, 17 de setembro de 2015 14:36
-
Bom dia,
O form tem uma "propriedade" (atributo) chamada "Tag", ela é do tipo object e serve exatamente pra
esse tipo de coisa, basicamente é o que o amigo acima disse mas usando algo que já existe.
- Marcado como Resposta Levi DomingosModerator quarta-feira, 16 de setembro de 2015 15:26
- Não Marcado como Resposta Gustavo X quinta-feira, 17 de setembro de 2015 14:26
-
Marcos Gerene...
Não achei um exemplo de como faze isso com Tag... voce poderia me dar um exemplo para ver se consigo executar por tag... Tipo, só para ter conhecimento... ou se voce tiver um site com tal situação...
Agradeço desde ja.
Gustavo Vieira Akatsu, Analista de Sistemas
- Editado Gustavo X quinta-feira, 17 de setembro de 2015 12:16
-
-
Rodrigo... tentei de outra forma e deu certo... mas obrigado pela dica... foi por voce que eu consegui chegar no resultado...
Code:
//No FORM2 você cria esta propriedade public int IdSelecionado{get{return retornoDoObjeto;}} //No FORM1, você escreveria o código da chamada assim FORM2 form2 = new FORM2(); if (form2.ShowDialog() == DialogResult.Cancel) // <=== Aqui é cancel. Obrigado { int idSelecionado = form2.IdSelecionado; }
Gustavo Vieira Akatsu, Analista de Sistemas
- Marcado como Resposta Gustavo X quinta-feira, 17 de setembro de 2015 14:36
-
Um exemplo:
class MeuForm {
private List<Cidade> cidades;
public MeuForm() { cidades = new List<Cidade>(); } public void AdicionarCidade() { using (var frmCidade = new FrmCidade()) { frmCidade.ShowDialog(); if (frmCidade.Tag != null) cidades.Add(frmCidade.Tag as Cidade); } } }
Neste caso, no form frmCidade eu seleciono uma cidade qualquer numa lista...
class FrmCidade() { private void btnSelecionar_Click(object sender, EventArgs e) { this.Tag = lista.Find(cid => cid.Id == int.Parse(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["Id"].Value.ToString())); this.Close(); } }
- Editado Marcos Gerene sexta-feira, 18 de setembro de 2015 14:34
- Marcado como Resposta Gustavo X sábado, 19 de setembro de 2015 15:00
-