Form.FormClosing Evento
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Ocorre antes do formulário ser fechado.
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 seguinte demonstra a utilização deste elemento. No exemplo, um gestor de eventos reporta a ocorrência do FormClosing evento. Este relatório ajuda-o a saber quando o evento ocorre e pode ajudá-lo na depuração. Para reportar múltiplos eventos ou eventos que ocorrem frequentemente, considere substituir MessageBox.Show ou Console.WriteLine anexar a mensagem a uma multilinha TextBox.
Para executar o código de exemplo, cole-o num projeto que contenha uma instância do tipo Form chamada Form1. Depois, certifique-se de que o gestor 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
Observações
O FormClosing evento ocorre enquanto o formulário está a ser fechado. Quando um formulário é fechado, é descartado, libertando todos os recursos associados ao formulário. Se cancelar este evento, o formulário permanece aberto. Para cancelar o fecho de um formulário, defina a Cancel propriedade do FormClosingEventArgs passado ao seu gestor de eventos para 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 para DialogResult.Cancel. Pode sobrescrever o valor atribuído à DialogResult propriedade quando o utilizador clica no botão Fechar , definindo a DialogResult propriedade num gestor de eventos para o FormClosing evento do formulário.
Note
Quando o Close método é chamado numa Form janela exibida como uma janela sem modos, não pode chamar o Show método para tornar o formulário visível, porque os recursos do formulário já foram libertados. Para esconder uma forma e depois torná-la visível, use o Hide método.
Se o formulário for um formulário pai de múltiplos documentos (MDI), os FormClosing eventos de todos os formulários filhos MDI são levantados antes de o evento do FormClosing formulário pai MDI ser levantado. Da mesma forma, os FormClosed eventos de todas as formas filhos MDI são levantados antes de o FormClosed evento da forma mãe MDI ser levantado. Cancelar o FormClosing evento de um formulário filho MDI não impede que o FormClosing evento do formulário pai MDI seja elevado. No entanto, cancelar o evento definirá a trueCancel propriedade da FormClosingEventArgs classe que é passada como parâmetro para a forma principal. Para forçar o encerramento de todos os formulários pai e filho do MDI, defina a Cancel propriedade como false no formulário pai do MDI.
Para obter mais informações sobre como manipular eventos, consulte Manipulando e gerando eventos.