Form.Closing Evento

Definición

Se produce cuando se cierra el formulario.

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

Ejemplos

En el ejemplo siguiente se usa Closing para probar si el texto de un objeto TextBox ha cambiado. Si es así, se pregunta al usuario si desea guardar los cambios en un archivo.

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

Comentarios

Precaución

El Closing evento está obsoleto a partir de .NET Framework 2.0; use el FormClosing evento en su lugar.

El Closing evento se produce cuando se cierra el formulario. Cuando se cierra un formulario, se liberan todos los recursos creados en el objeto y se elimina el formulario. Si cancela este evento, el formulario permanece abierto. Para cancelar el cierre de un formulario, establezca la Cancel propiedad del objeto pasado al controlador de CancelEventArgs eventos en true.

Cuando se muestra un formulario como un cuadro de diálogo modal, al hacer clic en el botón Cerrar (el botón con una X en la esquina superior derecha del formulario), el formulario se ocultará y la DialogResult propiedad se establecerá en DialogResult.Cancel. Puede invalidar el valor asignado a la DialogResult propiedad cuando el usuario hace clic en el botón Cerrar estableciendo la DialogResult propiedad en un controlador de eventos para el Closing evento del formulario.

Nota

Cuando se llama al Close método en una Form ventana mostrada como modelo, no puede llamar al Show método para que el formulario sea visible, ya que los recursos del formulario ya se han liberado. Para ocultar un formulario y, a continuación, hacer que sea visible, use el Control.Hide método .

Precaución

Los Form.Closed eventos y Form.Closing no se generan cuando se llama al método para salir de la Application.Exit aplicación. Si tiene código de validación en cualquiera de estos eventos que se deben ejecutar, debe llamar al Form.Close método para cada formulario abierto individualmente antes de llamar al Exit método .

Si el formulario es un formulario primario MDI, los Closing eventos de todos los formularios secundarios MDI se generan antes de que se genere el evento del formulario primario MDI Closing . Además, los Closed eventos de todos los formularios secundarios MDI se generan antes de que se genere el Closed evento del formulario primario MDI. Cancelar el Closing evento de un formulario secundario MDI no impide que se genere el Closing evento del formulario primario MDI. Sin embargo, la cancelación del evento se establecerá en true la Cancel propiedad del CancelEventArgs objeto que se pasa como parámetro al formulario primario. Para forzar que todos los formularios primarios y secundarios de MDI se cierren, establezca la Cancel propiedad false en en en el formulario primario MDI.

Para obtener más información sobre el manejo de eventos, consulte controlar y provocar eventos.

Se aplica a

Consulte también