Form.FormClosing Form.FormClosing Form.FormClosing Form.FormClosing Event

Definición

Se produce antes de cerrar el formulario.Occurs before the form is closed.

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 

Ejemplos

En el siguiente ejemplo se muestra el uso de este miembro.The following example demonstrates the use of this member. En el ejemplo, un controlador de eventos informa sobre la aparición del FormClosing evento.In the example, an event handler reports on the occurrence of the FormClosing event. Este informe le ayuda a saber cuándo se produce el evento y puede ayudarle a depurar.This report helps you to learn when the event occurs and can assist you in debugging. Para notificar varios eventos o eventos que se producen con frecuencia, considere MessageBox.Show la Console.WriteLine posibilidad de reemplazar por o anexar el TextBoxmensaje a una multilínea.To report on multiple events or on events that occur frequently, consider replacing MessageBox.Show with Console.WriteLine or appending the message to a multiline TextBox.

Para ejecutar el código de ejemplo, péguelo en un proyecto que contenga una instancia de Form tipo Form1denominada.To run the example code, paste it into a project that contains an instance of type Form named Form1. A continuación, asegúrese de que el controlador de eventos FormClosing está asociado al evento.Then ensure that the event handler is associated with the FormClosing event.

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 tiene lugar cuando se cierra el formulario.The FormClosing event occurs as the form is being closed. Cuando se cierra un formulario, se desecha y se liberan todos los recursos asociados al formulario.When a form is closed, it is disposed, releasing all resources associated with the form. Si cancela este evento, el formulario permanece abierto.If you cancel this event, the form remains opened. Para cancelar el cierre de un formulario, establezca la Cancel propiedad FormClosingEventArgs del pasado en el controlador de eventos en true.To cancel the closure of a form, set the Cancel property of the FormClosingEventArgs passed to your event handler to true.

Cuando un formulario se muestra 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), se oculta el formulario y DialogResult la propiedad se establece en DialogResult.Cancel.When a form is displayed as a modal dialog box, clicking the Close button (the button with an X at the upper-right corner of the form) causes the form to be hidden and the DialogResult property to be set to DialogResult.Cancel. Puede invalidar el valor asignado a la DialogResult propiedad cuando el usuario haga clic en el botón cerrar estableciendo la DialogResult propiedad en un controlador de eventos para FormClosing el evento del formulario.You can override the value assigned to the DialogResult property when the user clicks the Close button by setting the DialogResult property in an event handler for the FormClosing event of the form.

Nota

Cuando se llama al Form Show método en un que se muestra como una ventana no modal, no se puede llamar al método para hacer que el formulario sea visible, ya que los recursos del formulario ya se han liberado. CloseWhen the Close method is called on a Form displayed as a modeless window, you cannot call the Show method to make the form visible, because the form's resources have already been released. Para ocultar un formulario y, a continuación, hacer que esté Hide visible, use el método.To hide a form and then make it visible, use the Hide method.

Si el formulario es un formulario primario de interfaz de múltiples documentos (MDI), FormClosing los eventos de todos los formularios MDI secundarios se generan antes de que se FormClosing genere el evento del formulario MDI principal.If the form is a multiple-document interface (MDI) parent form, the FormClosing events of all MDI child forms are raised before the MDI parent form's FormClosing event is raised. Del mismo modo FormClosed , los eventos de todos los formularios MDI secundarios se FormClosed generan antes de que se produzca el evento del formulario primario MDI.Likewise, the FormClosed events of all MDI child forms are raised before the FormClosed event of the MDI parent form is raised. Cancelar el FormClosing evento de un formulario MDI secundario no impide que se genere FormClosing el evento del formulario primario MDI.Canceling the FormClosing event of an MDI child form does not prevent the FormClosing event of the MDI parent form from being raised. Sin embargo, si se cancela el evento, true se Cancel establecerá en FormClosingEventArgs la propiedad de la clase que se pasa como parámetro al formulario primario.However, canceling the event will set to true the Cancel property of the FormClosingEventArgs class that is passed as a parameter to the parent form. Para forzar que todos los formularios MDI primarios y secundarios se Cancel cierren false , establezca la propiedad en en el formulario primario MDI.To force all MDI parent and child forms to close, set the Cancel property to false in the MDI parent form.

Para obtener más información sobre el manejo de eventos, consulte controlar y provocar eventos.For more information about handling events, see Handling and Raising Events.

Se aplica a

Consulte también: