Compartilhar via


Form.Closing Evento

Definição

Ocorre quando o formulário está sendo fechado.

public:
 event System::ComponentModel::CancelEventHandler ^ Closing;
public event System.ComponentModel.CancelEventHandler Closing;
[System.ComponentModel.Browsable(false)]
public event System.ComponentModel.CancelEventHandler Closing;
[System.ComponentModel.Browsable(false)]
public event System.ComponentModel.CancelEventHandler? Closing;
member this.Closing : System.ComponentModel.CancelEventHandler 
[<System.ComponentModel.Browsable(false)>]
member this.Closing : System.ComponentModel.CancelEventHandler 
Public Custom Event Closing As CancelEventHandler 

Tipo de evento

Atributos

Exemplos

O exemplo a seguir usa Closing para testar se o texto em um TextBox foi alterado. Se tiver, o usuário será questionado se deseja salvar as alterações em um arquivo.

private:
   void Form1_Closing( Object^ /*sender*/, System::ComponentModel::CancelEventArgs^ e )
   {
      // Determine if text has changed in the textbox by comparing to original text.
      if ( textBox1->Text != strMyOriginalText )
      {
         // Display a MsgBox asking the user to save changes or abort.
         if ( MessageBox::Show( "Do you want to save changes to your text?", "My Application", MessageBoxButtons::YesNo ) == ::DialogResult::Yes )
         {
            // Cancel the Closing event from closing the form.
            e->Cancel = true;

            // Call method to save file...
         }
      }
   }
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
   // Determine if text has changed in the textbox by comparing to original text.
   if (textBox1.Text != strMyOriginalText)
   {
      // Display a MsgBox asking the user to save changes or abort.
      if(MessageBox.Show("Do you want to save changes to your text?", "My Application",
         MessageBoxButtons.YesNo) ==  DialogResult.Yes)
      {
         // Cancel the Closing event from closing the form.
         e.Cancel = true;
         // Call method to save file...
      }
   }
}
   Private Sub Form1_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
      ' Determine if text has changed in the textbox by comparing to original text.
      If textBox1.Text <> strMyOriginalText Then
         ' Display a MsgBox asking the user to save changes or abort.
         If MessageBox.Show("Do you want to save changes to your text?", "My Application", MessageBoxButtons.YesNo) = DialogResult.Yes Then
            ' Cancel the Closing event from closing the form.
            e.Cancel = True
         End If ' Call method to save file...
      End If
   End Sub
End Class

Comentários

Cuidado

O Closing evento está obsoleto começando com o .NET Framework 2.0; use o FormClosing evento em vez disso.

O Closing evento ocorre quando o formulário está sendo fechado. Quando um formulário é fechado, todos os recursos criados dentro do objeto são liberados e o formulário é descartado. 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 CancelEventArgs 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 Closing 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 Control.Hide método .

Cuidado

Os Form.Closed eventos e Form.Closing não são gerados quando o Application.Exit método é chamado para sair do aplicativo. Se você tiver código de validação em qualquer um desses eventos que devem ser executados, deverá chamar o Form.Close método para cada formulário aberto individualmente antes de chamar o Exit método .

Se o formulário for um formulário pai MDI, os Closing eventos de todos os formulários filho MDI serão gerados antes que o evento do formulário pai MDI Closing seja gerado. Além disso, os Closed eventos de todos os formulários filho MDI são gerados antes que o Closed evento do formulário pai MDI seja gerado. Cancelar o Closing evento de um formulário filho MDI não impede que o Closing evento do formulário pai MDI seja gerado. No entanto, cancelar o evento definirá como true a Cancel propriedade do CancelEventArgs que é passado 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