No Form, existe os eventos FormClosed e FormClosing, que é executado ao fechar o Form. Como eu faria usando o UserControl?
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!