Form.FormClosing Událost

Definice

Vyvolá se před zavřeným formulářem.

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 

Event Type

Příklady

Následující příklad ukazuje použití tohoto členu. V příkladu obslužná rutina události hlásí výskyt FormClosing události. Tato sestava vám pomůže zjistit, kdy k události dojde, a může vám pomoct s laděním. Pokud chcete hlásit více událostí nebo událostí, ke kterým dochází často, zvažte nahrazení MessageBox.ShowConsole.WriteLine nebo připojení zprávy k víceřádkovému TextBoxobjektu .

Pokud chcete spustit ukázkový kód, vložte ho do projektu, který obsahuje instanci typu Form s názvem Form1. Pak se ujistěte, že je obslužná rutina události přidružená k FormClosing události.

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

Poznámky

Událost FormClosing nastane, když se formulář zavírá. Když je formulář zavřený, odstraní se a uvolní se všechny prostředky přidružené k formuláři. Pokud tuto událost zrušíte, zůstane formulář otevřený. Chcete-li zrušit zavření formuláře, nastavte Cancel vlastnost předanou FormClosingEventArgs 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) se formulář skryje a DialogResult vlastnost nastaví na DialogResult.Cancel. Hodnotu přiřazenou vlastnosti DialogResult můžete po kliknutí na tlačítko Zavřít přepsat nastavením DialogResult vlastnosti v obslužné rutině události pro FormClosing událost formuláře.

Poznámka

Close Když je metoda volána v Form zobrazeném okně jako nemodé okno, nelze volat metoduShow, aby byl formulář viditelný, protože prostředky formuláře již byly uvolněny. Pokud chcete formulář skrýt a pak ho zviditelnit, použijte metodu Hide .

Pokud je formulář nadřazeným formulářem rozhraní MDI (Multiple Document Interface), FormClosing události všech podřízených formulářů MDI jsou vyvolány před vyvolání události nadřazeného formuláře FormClosing MDI. Podobně FormClosed události všech podřízených formulářů MDI jsou vyvolány před FormClosed událostí nadřazeného formuláře MDI. Zrušení FormClosing události podřízeného formuláře MDI nezabrání FormClosing vyvolání události nadřazeného formuláře MDI. Zrušení události však nastaví na trueCancel vlastnost FormClosingEventArgs třídy, 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 false v nadřazené formuláři MDI na hodnotu .

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

Platí pro

Viz také