Usuário com melhor resposta
Fechar um form já aberto através de outro form

Pergunta
-
Tenho dois forms. Abro o primeiro, confirmo os dados e clico no botão Confirmar, assim será aberto um novo Form para confirmar informações adicionais. Nesse Form2, quando eu termino de confirmar as informações adicionais e clico no botão para gravar tudo, gostaria que depois de clicar neste botão, o Form2 e o Form1 fossem fechados ao mesmo tempo...
Respostas
-
Olá Gab
Seguinte, não sei como está chamando o Form2 mas pode fazer o seguinte.
Quando instanciar o Form2 passa como parâmetro a instancia do Form1, para isso teria que alterar o construtor do Form2 mas é tranquilo. Dai no evento do seu botão de salvar que está no Form2 você pegaria a instancia do Form1 e faria o seguinte:
form1.Dispose(); // Isso já mata o Form1
e em seguinte mandaria um :
this.Dispose(); //Isso mata o Form atual, no caso o Form2
Me fiz claro ? Se não der pra entender faço alguma coisa aqui pra te mostrar
Se fui útil não esquece de marcar como resposta
Att
Vinicius Cruz
- Marcado como Resposta GAB2903 sexta-feira, 30 de agosto de 2013 15:03
-
Formulário Form2
public partial class Form2 : Form { public bool IsConfirm { get; set; } public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { IsConfirm = true; this.Close(); } private void Form2_Load(object sender, EventArgs e) { IsConfirm = false; } }
Crie ai dentro do Form2 um propriedade IsConfirm aonde no Form1 eu posso ver as modifações
private void button2_Click(object sender, EventArgs e) { using (Form2 frm = new Form2()) { frm.ShowDialog(); if (frm.IsConfirm) { // confirma a rotina!!!
this.Close(); //Fecha o Formulário 1 } } }
Ai antes de sair da instância do Form2 se pode resgatar essa propriedade que ta no Form2 e trabalhar suas informações de confirmação!
Entendeu
Fúlvio Cezar Canducci Dias- Editado Fulvio Cezar Canducci Dias sexta-feira, 30 de agosto de 2013 14:40 alt
- Marcado como Resposta GAB2903 sexta-feira, 30 de agosto de 2013 15:03
-
-
entendi como matar os forms, mas como seria a alteracao da construçao do Form2?
onde tem :
public Form2(){ InitializeComponent(); } //fica assim private Form1 frm; public Form2(Form1 frm1){ InitializeComponent();
frm = frm1; }
ai na hora de chamar o Form2 do Form1 vc faz o seguinte
Form2 frm2 = new Form2(this);
Blz ?
- Marcado como Resposta GAB2903 sexta-feira, 30 de agosto de 2013 15:02
Todas as Respostas
-
Olá Gab
Seguinte, não sei como está chamando o Form2 mas pode fazer o seguinte.
Quando instanciar o Form2 passa como parâmetro a instancia do Form1, para isso teria que alterar o construtor do Form2 mas é tranquilo. Dai no evento do seu botão de salvar que está no Form2 você pegaria a instancia do Form1 e faria o seguinte:
form1.Dispose(); // Isso já mata o Form1
e em seguinte mandaria um :
this.Dispose(); //Isso mata o Form atual, no caso o Form2
Me fiz claro ? Se não der pra entender faço alguma coisa aqui pra te mostrar
Se fui útil não esquece de marcar como resposta
Att
Vinicius Cruz
- Marcado como Resposta GAB2903 sexta-feira, 30 de agosto de 2013 15:03
-
- Sugerido como Resposta Fulvio Cezar Canducci Dias sexta-feira, 30 de agosto de 2013 14:35
- Não Sugerido como Resposta GAB2903 sexta-feira, 30 de agosto de 2013 14:36
-
-
-
Formulário Form2
public partial class Form2 : Form { public bool IsConfirm { get; set; } public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { IsConfirm = true; this.Close(); } private void Form2_Load(object sender, EventArgs e) { IsConfirm = false; } }
Crie ai dentro do Form2 um propriedade IsConfirm aonde no Form1 eu posso ver as modifações
private void button2_Click(object sender, EventArgs e) { using (Form2 frm = new Form2()) { frm.ShowDialog(); if (frm.IsConfirm) { // confirma a rotina!!!
this.Close(); //Fecha o Formulário 1 } } }
Ai antes de sair da instância do Form2 se pode resgatar essa propriedade que ta no Form2 e trabalhar suas informações de confirmação!
Entendeu
Fúlvio Cezar Canducci Dias- Editado Fulvio Cezar Canducci Dias sexta-feira, 30 de agosto de 2013 14:40 alt
- Marcado como Resposta GAB2903 sexta-feira, 30 de agosto de 2013 15:03
-
-
GAB, tudo bem......
se é só fechar os dois forms, no final do seu método gravar coloque esse código:
// fechar o form2
this.Close();// fecha o form1 Form1.ActiveForm.Close();
abraço !!!! ;)
Diego Almeida Barreto
System Analyst / Software Developer- Sugerido como Resposta Diego de Almeida Barreto (Lewis) sexta-feira, 30 de agosto de 2013 14:43
- Editado Diego de Almeida Barreto (Lewis) sexta-feira, 30 de agosto de 2013 14:47 ok
- Não Sugerido como Resposta GAB2903 sexta-feira, 30 de agosto de 2013 15:00
-
entendi como matar os forms, mas como seria a alteracao da construçao do Form2?
onde tem :
public Form2(){ InitializeComponent(); } //fica assim private Form1 frm; public Form2(Form1 frm1){ InitializeComponent();
frm = frm1; }
ai na hora de chamar o Form2 do Form1 vc faz o seguinte
Form2 frm2 = new Form2(this);
Blz ?
- Marcado como Resposta GAB2903 sexta-feira, 30 de agosto de 2013 15:02