1
resposta

Evento ao fechar UserControl

No Form, existe os eventos FormClosed e FormClosing, que é executado ao fechar o Form. Como eu faria usando o UserControl?

1 resposta

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!