Compartir a través de


Form.FormClosing Evento

Definición

Se produce antes de cerrar el formulario.

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

Ejemplos

En el ejemplo siguiente se muestra el uso de este miembro. En el ejemplo, un controlador de eventos informa sobre la aparición del FormClosing evento. Este informe le ayuda a aprender cuándo se produce el evento y puede ayudarle a depurar. Para informar sobre varios eventos o eventos que se producen con frecuencia, considere la posibilidad de reemplazar MessageBox.Show por Console.WriteLine o anexar el mensaje a una línea TextBoxmúltiple.

Para ejecutar el código de ejemplo, péguelo en un proyecto que contenga una instancia de tipo Form denominada Form1. A continuación, asegúrese de que el controlador de eventos está asociado al 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

Comentarios

El FormClosing evento se produce cuando se cierra el formulario. Cuando se cierra un formulario, se elimina, liberando todos los recursos asociados al formulario. Si cancela este evento, el formulario permanece abierto. Para cancelar el cierre de un formulario, establezca la Cancel propiedad del FormClosingEventArgs objeto pasado al controlador de 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á DialogResult.Cancelen . 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 FormClosing evento del formulario.

Nota

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

Si el formulario es un formulario primario de interfaz de varios documentos (MDI), los FormClosing eventos de todos los formularios secundarios MDI se generan antes de que se genere el evento del formulario primario MDI FormClosing . Del mismo modo, los FormClosed eventos de todos los formularios secundarios MDI se generan antes de que se genere el FormClosed evento del formulario primario MDI. Cancelar el FormClosing evento de un formulario secundario MDI no impide que se genere el FormClosing evento del formulario primario MDI. Sin embargo, al cancelar el evento se establecerá true en la Cancel propiedad de la FormClosingEventArgs clase que se pasa como parámetro al formulario primario. Para forzar que se cierren todos los formularios primarios y secundarios de MDI, 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