Form.FormClosing Událost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 true
hodnotu .
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 true
Cancel 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í.