Jak se vyhnout výjimkám při zavírání formuláře při volání řídicí složky přes vlákna nelze přistupovat k objektům s odstraněnými objekty. Při volání formuláře přes vlákna ve vlákně a při použití volání k přiřazení hodnot nebo změně vlastností ovládání formuláře, pokud vlákno není ukončeno před uzavřením formuláře, vždy se objeví výjimka tohoto typu: nelze přistupovat k objektu založenému na dispozici. Důvodem by mělo být, že když je ve vlákně volána kontrola formuláře, formulář je odhlášen, takže opustí všechna vlákna dříve, než je formulář odhlášen. K vyřešení tohoto problému můžete přidat následující kód:
Výjimka už se nezobrazí. Voláním system.environment.exit(0) lze program úplně ukončit, bez ohledu na to, které vlákno je nuceno ukončit, a program ukončit velmi čistě.
FormZávěrečná akce
Když je formulář uzavřen, nastává událost Uzavření formuláře. Tato událost je vyřízena. Tím se uvolní všechny zdroje související s formulářem.
Pokud tuto akci zrušíte, formulář zůstává otevřený.
Když se formulář objeví jako dialogové okno v režimu, kliknutím na Zavřít se formulář skryje a vlastnost DialogResult se nastaví na Cancel. Nastavením vlastnosti DialogResult v některých událostech lze hodnotu DialogResult přepsat kliknutím uživatele na tlačítko zavřít v pravém horním rohu.
FormUzavřená akce
Událost FormClosed nastává poté, co uživatel nebo třída aplikace uzavře formulář metodou Zavřít nebo Ukončit.
Tuto událost můžete použít k uvolnění některých zdrojů formuláře. Tuto událost můžete také použít k uložení některých informací do vstupního formuláře nebo k aktualizaci rodičovského formuláře.
|