Ako sa vyhnúť výnimkám pri zatváraní formulára pri volaní kontroly cez vlákna, ktoré nemôžu pristupovať k objektom, ktoré sú vyradené. Pri volaní formulára naprieč vláknami vo vlákne a pri použití volania na priradenie hodnôt alebo zmenu vlastností kontrolám formulára, ak vlákno nie je ukončené pred uzavretím formulára, vždy sa objaví takáto výnimka: nie je možné pristupovať k vyradenému objektu. Dôvodom by malo byť to, že keď sa v vlákne volá kontrola formulára, formulár je odhlásený, takže opustí všetky vlákna skôr, než sa formulár odhlási. Na vyriešenie tohto problému môžete pridať nasledujúci kód:
Výnimka sa už nezobrazí. Volanie system.environment.exit(0 môže program úplne ukončiť, bez ohľadu na to, ktoré vlákno je nútené ukončiť, čím sa program ukončí veľmi čisto.
FormZáverečné podujatie
Keď je formulár uzavretý, nastáva udalosť FormClosing (Uzavretie formulára). Táto udalosť je vybavená. Tým sa uvoľnia všetky zdroje súvisiace s formulárom.
Ak túto udalosť zrušíte, formulár zostane otvorený.
Keď sa formulár objaví ako dialógové okno v režime, kliknutím na Zatvoriť sa formulár skryje a vlastnosť DialogResult sa nastaví na Cancel. Nastavením vlastnosti DialogResult v niektorých udalostiach je možné prepísať hodnotu DialogResult, keď používateľ klikne na tlačidlo zatvoriť v pravom hornom rohu.
FormUzavreté podujatie
Udalosť FormClosed nastáva po tom, čo metóda Close or Exit používateľa alebo triedy aplikácie uzavrie formulár.
Túto udalosť môžete použiť na uvoľnenie niektorých zdrojov formulára. Túto udalosť môžete tiež použiť na uloženie niektorých informácií do vstupného formulára alebo na aktualizáciu rodičovského formulára.
|