Hogyan kerüljük el a kivételeket, amikor egy űrlapot zárunk, amikor egy vezérlőt hívnak a szálakon keresztül, nem fér hozzá az elhelyezett objektumokhoz. Amikor egy szál szálai között hívunk űrlapot, és amikor invoke segítségével értékeket rendelünk vagy tulajdonságait módosítunk az űrlapvezérlőknek, ha a szál nem zárul le az űrlap bezárása előtt, mindig megjelenik egy ilyen kivétel: nem fér hozzá egy elhelyezett objektumhoz. Ennek az az oka, hogy amikor a formavezérlőt a szálban hívják, az űrlap már kijelentkezett, így minden szálból kilép, mielőtt kijelentkeznének. Ennek a problémának a megoldásához hozzáadhatod a következő kódot:
Többé nem jelenik meg a kivétel. A system.environment.exit(0) hívásával teljesen kiléphet a programból, függetlenül attól, hogy melyik szálat kényszerítik kizárni, így a program nagyon tisztán véget ér.
FormZáró esemény
Amikor az űrlap bezárul, megtörténik a FormClosing esemény. Ez az esemény kezelhető. Ez felszabadítja az űrlaphoz kapcsolódó összes erőforrást.
Ha lemondod ezt az eseményt, az űrlap nyitva marad.
Amikor az űrlap mód párbeszédként jelenik meg, a Close gombra kattintva elrejti az űrlapot, és a DialogResult tulajdonságot Cancel módra állítja. Ha bizonyos eseményekben beállítjuk a DialogResult tulajdonságot, felülírható a DialogResult értéke, amikor a felhasználó rákattint a jobb felső sarokban lévő zárás gombra.
FormZárt esemény
A FormClosed esemény akkor következik be, amikor a felhasználó vagy az Alkalmazás osztály Close or Exit módszere lezárja az űrlapot.
Ezt az eseményt felhasználva felszabadíthatod az űrlap néhány forrását. Ezt az eseményt arra is használhatod, hogy elments információkat a beviteli űrlapon, vagy frissítsd a szülői űrlapot.
|