Bir form kapanırken istisnalardan nasıl kaçınılır, threadler arasında bir kontrol çağrısı yapılır, atılmış nesnelere erişemez. Bir iş parçacığında iş parçacıkları arasında form çağrılırken ve invoke kullanılarak form kontrollerine değer atama veya özellikler değiştirilirse, iş parçacığı form kapatılmadan önce sonlandırılmazsa, böyle bir istisna her zaman çıkar: bir atılmış nesneye erişemez. Bunun nedeni, form kontrolü iş parçacığında çağrıldığında, form çıkış yapılmış olması ve bu nedenle form çıkıştan önce tüm iş parçacıklarından çıkmasıdır. Bu sorunu çözmek için aşağıdaki kodu ekleyebilirsiniz:
Artık istisna çıkmaz. system.environment.exit(0) çağırıldığında, hangi iş parçacığı kapanmaya zorlanırsa çıksın programdan tamamen çıkabilir ve program çok temiz bir şekilde sona erer.
Form Kapanış etkinliği
Form kapatıldığında, FormClosing olayı gerçekleşir. Bu etkinlik yönetiliyor. Bu, formla ilgili tüm kaynakları serbest bırakır.
Bu etkinliği iptal ederseniz, form açık kalır.
Form mod diyalogu olarak göründüğünde, Kapat seçeneğine tıklayarak formu gizler ve DialogResult özelliğini İptal eder. Bazı olaylarda DialogResult özelliği ayarlanarak, kullanıcı sağ üst köşedeki kapatma düğmesine tıkladığında DialogResult değeri geçersiz kılınabilir.
FormClosed etkinliği
FormClosed olayı, kullanıcı veya uygulama sınıfının Close veya Exit yöntemi formu kapattıktan sonra gerçekleşir.
Bu etkinliği formun bazı kaynaklarını serbest bırakmak için kullanabilirsiniz. Bu olayı giriş formuna bazı bilgileri kaydetmek veya ana formu güncellemek için de kullanabilirsiniz.
|