Sdílet prostřednictvím


Form.Closing Událost

Definice

Dochází při zavírání formuláře.

public:
 event System::ComponentModel::CancelEventHandler ^ Closing;
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;
member this.Closing : System.ComponentModel.CancelEventHandler 
[<System.ComponentModel.Browsable(false)>]
member this.Closing : System.ComponentModel.CancelEventHandler 
Public Custom Event Closing As CancelEventHandler 

Event Type

Atributy

Příklady

Následující příklad používá Closing k testování, jestli se text v objektu TextBox změnil. Pokud ano, zobrazí se uživateli dotaz, jestli má uložit změny do souboru.

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...
         }
      }
   }
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...
      }
   }
}
   Private Sub Form1_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
      ' Determine if text has changed in the textbox by comparing to original text.
      If textBox1.Text <> strMyOriginalText Then
         ' 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 Then
            ' Cancel the Closing event from closing the form.
            e.Cancel = True
         End If ' Call method to save file...
      End If
   End Sub
End Class

Poznámky

Upozornění

Událost Closing je zastaralá počínaje rozhraním .NET Framework 2.0; místo toho použijte FormClosing událost.

Událost Closing nastane, když se formulář zavírá. Po zavření formuláře jsou uvolněny všechny prostředky vytvořené v objektu a formulář je odstraněn. Pokud tuto událost zrušíte, zůstane formulář otevřený. Chcete-li zrušit uzavření formuláře, nastavte Cancel vlastnost předávaného CancelEventArgs na obslužnou rutinu události na truehodnotu .

Když se formulář zobrazí jako modální dialogové okno, kliknutím na tlačítko Zavřít (tlačítko s X v pravém horním rohu formuláře) způsobíte, že formulář bude skrytý a DialogResult vlastnost se nastaví na DialogResult.Cancel. Hodnotu přiřazenou vlastnosti DialogResult můžete po kliknutí uživatele na tlačítko Zavřít přepsat nastavením DialogResult vlastnosti v obslužné rutině události pro Closing událost formuláře.

Poznámka

Close Pokud je metoda volána v zobrazeném Form okně bez režimu, nelze volat metoduShow, aby se formulář zviditelnil, protože prostředky formuláře již byly uvolněny. Pokud chcete formulář skrýt a pak ho zviditelnit, použijte metodu Control.Hide .

Upozornění

Události Form.Closed a Form.Closing se nevyvolají, když Application.Exit je volána metoda pro ukončení aplikace. Pokud máte ověřovací kód v některé z těchto událostí, které musí být provedeny, měli byste volat metodu Form.Close pro každý otevřený formulář zvlášť před voláním Exit metody.

Pokud je formulář nadřazeným formulářem MDI, Closing jsou události všech podřízených formulářů MDI vyvolány před vyvolání události nadřazeného formuláře Closing MDI. Kromě toho Closed jsou události všech podřízených formulářů MDI vyvolány před Closed vyvolání události nadřazeného formuláře MDI. Zrušení Closing události podřízeného formuláře MDI nezabrání Closing vyvolání události nadřazeného formuláře MDI. Zrušení události se však nastaví na trueCancel vlastnost CancelEventArgs , která je předána jako parametr nadřazeného formuláře. Chcete-li vynutit zavření všech nadřazených a podřízených formulářů MDI, nastavte Cancel vlastnost na false v nadřazené formuláři MDI.

Další informace o zpracování událostí najdete v tématu Zpracování a vyvolávání událostí.

Platí pro

Viz také