Form.OnClosing(CancelEventArgs) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Aciona o evento Closing.
protected:
virtual void OnClosing(System::ComponentModel::CancelEventArgs ^ e);
protected virtual void OnClosing (System.ComponentModel.CancelEventArgs e);
abstract member OnClosing : System.ComponentModel.CancelEventArgs -> unit
override this.OnClosing : System.ComponentModel.CancelEventArgs -> unit
Protected Overridable Sub OnClosing (e As CancelEventArgs)
Parâmetros
Um CancelEventArgs que contém os dados do evento.
Exemplos
O exemplo a seguir usa Closing para testar se o texto em um TextBox foi alterado. Se tiver, o usuário será perguntado 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 OnClosing método é obsoleto começando com o .NET Framework 2.0; use o OnFormClosing método em vez disso.
A geração de um evento invoca o manipulador de eventos por meio de um delegado. Para obter mais informações, consulte Manipulando e levantando eventos.
O OnClosing método também permite que classes derivadas manipulem o evento sem anexar um delegado. Substituir esse método é a técnica preferencial para lidar com o evento em uma classe derivada.
Cuidado
Os OnClosed métodos e OnClosing não são chamados quando o Application.Exit método é chamado para sair do aplicativo. Se você tiver código de validação em qualquer um desses métodos que devem ser executados, deverá chamar o Form.Close método para cada formulário aberto individualmente antes de chamar o Exit método .
Notas aos Herdeiros
Ao substituir OnClosing(CancelEventArgs) em uma classe derivada, chame o método da OnClosing(CancelEventArgs) classe base para que os delegados registrados recebam o evento.