Form.Closing Evento

Definizione

Si verifica quando il form viene chiuso.

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;

Tipo evento

Attributi

Esempio

Nell'esempio seguente viene Closing usato per verificare se il testo in un oggetto TextBox è stato modificato. In caso affermativo, all'utente viene chiesto se salvare le modifiche apportate a un 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...
      }
   }
}

Commenti

Attenzione

L'evento Closing è obsoleto a partire da .NET Framework 2.0. Usare invece l'evento FormClosing .

L'evento Closing si verifica quando il modulo viene chiuso. Quando un modulo viene chiuso, tutte le risorse create all'interno dell'oggetto vengono rilasciate e il modulo viene eliminato. Se si annulla questo evento, il modulo rimane aperto. Per annullare la chiusura di un modulo, impostare la Cancel proprietà dell'oggetto CancelEventArgs 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 Closing 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 Control.Hide metodo .

Attenzione

Gli Form.Closed eventi e Form.Closing non vengono generati quando viene chiamato il Application.Exit metodo per uscire dall'applicazione. Se si dispone di codice di convalida in uno di questi eventi che devono essere eseguiti, è necessario chiamare il Form.Close metodo per ogni modulo aperto singolarmente prima di chiamare il Exit metodo .

Se il modulo è un modulo padre MDI, gli Closing eventi di tutti i moduli figlio MDI vengono generati prima che venga generato l'evento del Closing modulo padre MDI. Inoltre, gli Closed eventi di tutti i moduli figlio MDI vengono generati prima che venga generato l'evento Closed del form padre MDI. L'annullamento dell'evento Closing di un modulo figlio MDI non impedisce la generazione dell'evento Closing del modulo padre MDI. Tuttavia, l'annullamento dell'evento verrà impostato sulla trueCancel proprietà dell'oggetto CancelEventArgs passato come parametro al modulo 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

Prodotto Versioni
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Vedi anche