Form.FormClosing Evento

Definizione

Si verifica prima della chiusura del form.

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 evento

Esempio

Nell'esempio seguente viene illustrato l'uso di questo membro. Nell'esempio un gestore eventi segnala l'occorrenza dell'evento FormClosing . Questo report consente di apprendere quando si verifica l'evento e può essere utile per il debug. Per segnalare più eventi o eventi che si verificano di frequente, provare a sostituire MessageBox.Show o Console.WriteLine accodare il messaggio a un oggetto multilinea TextBox.

Per eseguire il codice di esempio, incollarlo in un progetto contenente un'istanza di tipo Form denominata Form1. Assicurarsi quindi che il gestore eventi sia associato all'evento FormClosing .

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

Commenti

L'evento FormClosing si verifica quando il modulo viene chiuso. Quando un modulo viene chiuso, viene eliminato, rilasciando tutte le risorse associate al modulo. Se si annulla questo evento, il modulo rimane aperto. Per annullare la chiusura di un modulo, impostare la Cancel proprietà dell'oggetto FormClosingEventArgs passato al gestore eventi su true.

Quando un modulo viene visualizzato come finestra di dialogo modale, facendo clic sul pulsante Chiudi (il pulsante con una X nell'angolo superiore destro del modulo) la maschera viene nascosta e la DialogResult proprietà deve essere impostata su DialogResult.Cancel. È possibile eseguire l'override del valore assegnato alla DialogResult proprietà quando l'utente fa clic sul pulsante Chiudi impostando la DialogResult proprietà in un gestore eventi per l'evento FormClosing del modulo.

Nota

Quando il Close metodo viene chiamato su una Form finestra visualizzata come finestra senza modalità, non è possibile chiamare il Show metodo per rendere visibile il modulo, perché le risorse del modulo sono già state rilasciate. Per nascondere un modulo e renderlo visibile, usare il Hide metodo .

Se il modulo è un modulo padre MDI (Multiple-Document Interface), gli FormClosing eventi di tutti i moduli figlio MDI vengono generati prima che venga generato l'evento del FormClosing modulo padre MDI. Analogamente, gli FormClosed eventi di tutti i moduli figlio MDI vengono generati prima che venga generato l'evento FormClosed del form padre MDI. L'annullamento dell'evento FormClosing di un modulo figlio MDI non impedisce la generazione dell'evento FormClosing del modulo padre MDI. Tuttavia, l'annullamento dell'evento verrà impostato sulla trueCancel proprietà della FormClosingEventArgs classe passata come parametro al form padre. Per forzare la chiusura di tutti i moduli padre e figlio MDI, impostare la Cancel proprietà su false nel modulo padre MDI.

Per ulteriori informazioni sulla gestione degli eventi, consultare gestione e generazione di eventi.

Si applica a

Vedi anche