none
Evento quando um form é fechado RRS feed

  • Pergunta

  • Gostaria de saber se o visual dispara algum evento quando o form é fechado.

    Gostaria de tratar estes eventos na minha tela inicial, toda vez que um form é fechado eu desejo fazer um evento.

    quinta-feira, 6 de agosto de 2015 12:46

Respostas

  • O Window tem os eventos Closing (quando ele inicia o processo para ser fechado) e o Closed(quando ele é fechado de fato)
    • Sugerido como Resposta Samuel Pelaquim quinta-feira, 6 de agosto de 2015 13:58
    • Marcado como Resposta Marcos SJ quarta-feira, 2 de setembro de 2015 19:09
    quinta-feira, 6 de agosto de 2015 13:08
  • sem utilizar o dialog, eu poderia fazer algo com este evento?

    frm.Closed

    Tipo, quando o form for fechado, faça isto.

    alguma coisa assim

    Form1 frm = new Form1();
    frm.Show();
    frm.Closed = fazer alguma coisa

    Da sim, você pode fazer o seguinte.

    Window1 frm = new Window1();
    frm.Closed += frm_Closed;
    frm.Show();

    ai é só criar o evento a seguir

    static void frm_Closed(object sender, EventArgs e)
    {
        MessageBox.Show("Teste");
    }

    ai você pode colocar seu comando no lugar da MessageBox

    • Sugerido como Resposta Samuel Pelaquim quinta-feira, 6 de agosto de 2015 16:23
    • Marcado como Resposta Eduardo Michetti quinta-feira, 6 de agosto de 2015 23:48
    quinta-feira, 6 de agosto de 2015 14:45
  • O que exatamente você quer fazer?

    Você pode criar um método que contém toda a lógica do fluxo que você quer executar na sua aplicação e depois só precisa chamar esse método no evento Closed ou Closing como Gustavo_Freitas te indicou.

    • Sugerido como Resposta Samuel Pelaquim quinta-feira, 6 de agosto de 2015 13:58
    • Marcado como Resposta Marcos SJ quarta-feira, 2 de setembro de 2015 19:09
    quinta-feira, 6 de agosto de 2015 13:57

Todas as Respostas

  • O Window tem os eventos Closing (quando ele inicia o processo para ser fechado) e o Closed(quando ele é fechado de fato)
    • Sugerido como Resposta Samuel Pelaquim quinta-feira, 6 de agosto de 2015 13:58
    • Marcado como Resposta Marcos SJ quarta-feira, 2 de setembro de 2015 19:09
    quinta-feira, 6 de agosto de 2015 13:08
  • Mas ai eu teria q tratar form por form desta forma né?


    Não queria ter q fazer isso form por form, queria uma coisa mais dinamica, tipo sempre que um form for fechado vai fazer uma coisa.
    quinta-feira, 6 de agosto de 2015 13:19
  • O que exatamente você quer fazer?

    Você pode criar um método que contém toda a lógica do fluxo que você quer executar na sua aplicação e depois só precisa chamar esse método no evento Closed ou Closing como Gustavo_Freitas te indicou.

    • Sugerido como Resposta Samuel Pelaquim quinta-feira, 6 de agosto de 2015 13:58
    • Marcado como Resposta Marcos SJ quarta-feira, 2 de setembro de 2015 19:09
    quinta-feira, 6 de agosto de 2015 13:57
  • Eu tenho um form principal (que sempre é exibido), e sempre q altero dados em outros forms altera informções que são exibidas nele (form principal). Então eu queria que toda vez que um form fosse fechado ele atualizasse (no caso abrir e fechar este form).
    quinta-feira, 6 de agosto de 2015 14:09
  • Você pode chamar os outros Forms utiliazando o o seguinte comando

    Form1 frm = new Form1();
    frm.ShowDialog();

    Com o ShowDialog, o programa ira parar neste ponto até que o form chamado (neste caso o Form1) seja fechado, e então você pode chamar sua função de atualizar o form principal logo abaixo do ShowDialog, pois sera executado apenas quando o form chamado for fechado


    • Editado Gustavo_Freitas quinta-feira, 6 de agosto de 2015 14:26 erro de escrita
    quinta-feira, 6 de agosto de 2015 14:24
  • sem utilizar o dialog, eu poderia fazer algo com este evento?

    frm.Closed

    Tipo, quando o form for fechado, faça isto.

    alguma coisa assim

    Form1 frm = new Form1();
    frm.Show();
    frm.Closed = fazer alguma coisa

    quinta-feira, 6 de agosto de 2015 14:33
  • Acho o que você precisa Eduardo e isso

    E só jogar o comando de atualizar antes de abrir o formulario

    Form1 frm = new Form1();
    frm.ShowDialog();
    
    
    // Seu select ou comando que atualizar os dados


    Atenciosamente,
    José Henrique Sabino

    quinta-feira, 6 de agosto de 2015 14:41
  • sem utilizar o dialog, eu poderia fazer algo com este evento?

    frm.Closed

    Tipo, quando o form for fechado, faça isto.

    alguma coisa assim

    Form1 frm = new Form1();
    frm.Show();
    frm.Closed = fazer alguma coisa

    Da sim, você pode fazer o seguinte.

    Window1 frm = new Window1();
    frm.Closed += frm_Closed;
    frm.Show();

    ai é só criar o evento a seguir

    static void frm_Closed(object sender, EventArgs e)
    {
        MessageBox.Show("Teste");
    }

    ai você pode colocar seu comando no lugar da MessageBox

    • Sugerido como Resposta Samuel Pelaquim quinta-feira, 6 de agosto de 2015 16:23
    • Marcado como Resposta Eduardo Michetti quinta-feira, 6 de agosto de 2015 23:48
    quinta-feira, 6 de agosto de 2015 14:45
  • Bacana, exatamente isto Gustavo_Freitas

    Window1 frm = new Window1();
    frm.Closed += frm_Closed;
    frm.Show();

    ai é só criar o evento a seguir

    static void frm_Closed(object sender, EventArgs e)
    {
        MessageBox.Show("Teste");
    }

    Funcionou que uma beleza. Muito obrigado pela contribuição.

    quinta-feira, 6 de agosto de 2015 14:56