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 ejemplo de código siguiente se muestra el uso de este miembro.The following code example demonstrates the use of this member. En el ejemplo, un controlador de eventos informa sobre la aparición de la FormClosing eventos.In the example, an event handler reports on the occurrence of the FormClosing event. Este informe le ayuda a saber cuándo el evento se produce y puede ayudarle a depurar.This report helps you to learn when the event occurs and can assist you in debugging. Para informar sobre varios eventos o en eventos que se producen con frecuencia, considere reemplazar MessageBox.Show con Console.WriteLine o agregar el mensaje a un multilínea TextBox.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 ejemplo de código, péguelo en un proyecto que contiene una instancia del tipo Form denominado Form1.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 está asociado el controlador de eventos con el FormClosing eventos.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 elimina, liberando 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 de la FormClosingEventArgs pasa al controlador de eventos true.To cancel the closure of a form, set the Cancel property of the FormClosingEventArgs passed to your event handler to true.

Cuando se muestra un formulario como cuadro de diálogo modal, al hacer clic en el cerrar botón (el botón con una X en la esquina superior derecha del formulario) hace que el formulario se oculta y la DialogResult 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 hace clic en el cerrar botón estableciendo la DialogResult propiedad en un controlador de eventos para el FormClosing 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 el Close se llama al método en un Form muestra como una ventana no modal y no se puede llamar el Show método para que el formulario esté visible, porque ya se han publicado los recursos del formulario.When 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, hacerlo visible, use el Hide método.To hide a form and then make it visible, use the Hide method.

Si el formulario es un formulario principal de la interfaz de múltiples documentos (MDI), el FormClosing se generan eventos de todos los formularios MDI secundarios antes del formulario primario MDI FormClosing provoca el evento.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, el FormClosed se generan eventos de todos los formularios MDI secundarios antes de la FormClosed se provoca 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. Cancelando la FormClosing eventos de un formulario MDI secundario no impide que el FormClosing eventos del formulario MDI primario que se generen.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, al cancelar el evento establecerá en true el Cancel propiedad de la FormClosingEventArgs clase que se pasa como parámetro al formulario principal.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 cierren, establezca el Cancel propiedad false en el MDI formulario primario.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: