No Form, existe os eventos FormClosed e FormClosing, que é executado ao fechar o Form. Como eu faria usando o UserControl?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
No Form, existe os eventos FormClosed e FormClosing, que é executado ao fechar o Form. Como eu faria usando o UserControl?
Oi, tudo bem? Espero quem sim!
Para criar um evento ao fechar um UserControl, você pode utilizar o evento Dispose. O evento Dispose é acionado quando o controle é liberado da memória.
Você pode criar um evento personalizado no seu UserControl e acioná-lo dentro do evento Dispose. Veja um exemplo de como fazer isso:
public partial class MeuUserControl : UserControl
{
public event EventHandler UserControlClosed;
public MeuUserControl()
{
InitializeComponent();
}
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
// Aciona o evento UserControlClosed antes de liberar o controle da memória
UserControlClosed?.Invoke(this, EventArgs.Empty);
components.Dispose();
}
base.Dispose(disposing);
}
}
No exemplo acima, criamos um evento chamado UserControlClosed do tipo EventHandler. Dentro do método Dispose, verificamos se o disposing é verdadeiro e acionamos o evento UserControlClosed antes de liberar o controle da memória.
Agora, você pode utilizar esse evento no seu Form para executar alguma ação quando o UserControl for fechado. Basta adicionar um manipulador de eventos para o evento UserControlClosed. Veja um exemplo:
private void meuUserControl1_UserControlClosed(object sender, EventArgs e)
{
// Ação a ser executada ao fechar o UserControl
MessageBox.Show("UserControl fechado!");
}
No exemplo acima, criamos um método chamado meuUserControl1_UserControlClosed que será executado quando o evento UserControlClosed for acionado. Nesse método, podemos realizar a ação desejada, como exibir uma mensagem.
Espero ter ajudado e bons estudos!