Form.FormClosing Evento

Definição

Ocorre antes que o formulário seja fechado.

public:
 event System::Windows::Forms::FormClosingEventHandler ^ FormClosing;
public event System.Windows.Forms.FormClosingEventHandler FormClosing;
public event System.Windows.Forms.FormClosingEventHandler? FormClosing;
member this.FormClosing : System.Windows.Forms.FormClosingEventHandler 
Public Custom Event FormClosing As FormClosingEventHandler 

Tipo de evento

Exemplos

O exemplo a seguir demonstra o uso desse membro. No exemplo, um manipulador de eventos relata a ocorrência do FormClosing evento. Este relatório ajuda você a saber quando o evento ocorre e pode ajudá-lo na depuração. Para relatar vários eventos ou eventos que ocorrem com frequência, considere substituir MessageBox.ShowConsole.WriteLine por ou acrescentar a mensagem a uma multilinha TextBox.

Para executar o código de exemplo, cole-o em um projeto que contém uma instância do tipo Form chamada Form1. Em seguida, verifique se o manipulador de eventos está associado ao FormClosing evento.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "CloseReason", e.CloseReason );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Cancel", e.Cancel );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "FormClosing Event" );
}
Private Sub Form1_FormClosing(sender as Object, e as FormClosingEventArgs) _ 
     Handles Form1.FormClosing

    Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "CloseReason", e.CloseReason)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "Cancel", e.Cancel)
    messageBoxVB.AppendLine()
    MessageBox.Show(messageBoxVB.ToString(),"FormClosing Event")

End Sub

Comentários

O FormClosing evento ocorre quando o formulário está sendo fechado. Quando um formulário é fechado, ele é descartado, liberando todos os recursos associados ao formulário. Se você cancelar esse evento, o formulário permanecerá aberto. Para cancelar o fechamento de um formulário, defina a Cancel propriedade do passado para o FormClosingEventArgs manipulador de eventos como true.

Quando um formulário é exibido como uma caixa de diálogo modal, clicar no botão Fechar (o botão com um X no canto superior direito do formulário) faz com que o formulário fique oculto e a DialogResult propriedade seja definida DialogResult.Cancelcomo . Você pode substituir o valor atribuído à DialogResult propriedade quando o usuário clica no botão Fechar definindo a DialogResult propriedade em um manipulador de eventos para o FormClosing evento do formulário.

Observação

Quando o Close método é chamado em um Form exibido como uma janela sem formatada, você não pode chamar o Show método para tornar o formulário visível, pois os recursos do formulário já foram liberados. Para ocultar um formulário e torná-lo visível, use o Hide método .

Se o formulário for um formulário pai de MDI (interface de vários documentos), os FormClosing eventos de todos os formulários filho MDI serão gerados antes que o evento do formulário pai MDI FormClosing seja gerado. Da mesma forma, os FormClosed eventos de todos os formulários filho MDI são gerados antes que o FormClosed evento do formulário pai MDI seja gerado. Cancelar o FormClosing evento de um formulário filho MDI não impede que o FormClosing evento do formulário pai MDI seja gerado. No entanto, cancelar o evento definirá como true a Cancel propriedade da FormClosingEventArgs classe que é passada como um parâmetro para o formulário pai. Para forçar o fechamento de todos os formulários pai e filho da MDI, defina a Cancel propriedade false como no formulário pai da MDI.

Para obter mais informações sobre como lidar com eventos, consulte Manipulando e gerando eventos.

Aplica-se a

Confira também