Arkadaşlar merhaba, Bilgisayar Programcılığı öğrencisiyim ve bir tane projem var. Şuan için 1 tane anasayfa formu olmak üzere toplam 5 tane formdan oluşan bir projem var. Sorunumun neyden kaynaklandığını buldum fakat bir türlü çözüme kavuşturamadım. Sorunum:
Anasayfa formumun FormClosed eventinde "Programı kapatmak istediğinize emin misiniz?" sorusu çıkan şıklı bir MessageBox oluşturdum. Eğer programı çalıştırır çalıştırmaz çıkış yapmaya çalışırsam sıfır sıkıntı bir şekilde tek seferde programı kapatabiliyorum fakat eğer programı açtıktan sonra başka bir forma geçiş yaparsam sonra o formu kapatıp Anasayfa formuma geçiş yapıp programı kapatmaya çalıştığımda açılmış olan form sayısı kadar döngüye giriyor MessageBox ekranı. Yani burada eğer yanılmıyorsam diğer formlar, Anasayfamın FormClosed eventini tekrar tekrar tetikliyor bu yüzden de döngüye giriyor. Sorunun bu olduğunu düşünüyorum fakat bir türlü sorunumu çözüme kavuşturamadım. Şunu da ekleyeyim: Diğer formlarımın FormClosed Eventsleri şu şekilde; diğer formlarımı kapatınca Anasayfa formumun açılmasını istiyorum. O yüzden buna uygun olacak şekilde kodlamaya çalıştım.
Anasayfa formum hariç diğer formlarımın FormClosed Eventsleri:
Normalde formAnasayfa.Show(); şeklinde kullanıyordum fakat sorunumu çözmek için chatGPT'den yardım aldığım sırada chatGPT bu şekilde düzeltmişti o yüzden bu şekilde kaldı. Burada kullanmış olduğum "this.Hide();" kodu yüzünden bu sorunla karşılaştığımı düşünüyorum. Sonuçta bu kod mevcut formu sadece gizliyor, kapatmıyor diye biliyorum. Kapatmak için nasıl bir kod kullanmam gerekiyor onu da bilmiyorum. "this.Close();" denedim fakat yine aynı sorunla karşılaştım. "Application.Exit();" yazsam zaten bu direkt programı kapatmak için kullanılan bir kod bunu istemiyorum.
Benim yazdığım kod normalde bu gördüğünüz kodun "isExiting" bayrak ifadesi olmayan hâliydi. Bu isExiting bayrak ifadesini de yine aynı şekilde chatGPT'den yardım aldığım sırada chatGPT'nin bana önerdiği çözüm yoluydu fakat bu da çözüm olmadı maalesef.
Yani uzun lafın kısası sorunun kaynağını biliyor gibi hissediyorum; diğer formlarım kapatılamadığı için eğer o formları çalıştırırsam ve Anasayfa formumda programdan çıkış yapmaya çalışırsam, daha önce çalıştırmış olduğum form sayısı kadar program döngüye giriyor. Yani her döngüye girdiğinde ve "Evet"e tıkladığımda aslında önce diğer formlarımı kapatıyor. Bundan dolayı bu sorunla karşılaştığımı düşünüyorum fakat çözüme bir türlü ulaşamadım. Yardımcı olabilir misiniz?
Sorun aslında kafamda çok basit fakat kelimelere dökememiş gibi hissediyorum Umarım anlaşılır olmuştur..
Problem bundan kaynaklanıyor. Sürekli yeni bir ana sayfa başlatıyorsun. Dolayısıyla diğer ana sayfalar gizlide kalmış oluyor. Çözüm basit, ana sayfayı ya açık formlardan getireceksin, yada dilin özelliklerinden yararlanacaksın.
C# bir OOP dil. Object Oriented Programming (Nesne yönelimli programlama) dili. Bu dilin sahip olduğu özelliklerden biri ise farkında olmadan kullandığın constructorlar. Constructor'da FormAnasayfa'yı parametre olarak alırsan, daha sonrasında çağırmak istediğinde mevcut tek örneğini çağırmış olacaksın, kopyasını değil.
Projeyi komple paylaşır mısın? Eve geçince debug deneyeyim. Application.Exit diğer formlari kendi formunla beraber direkt yok etmeli açık olsalar bile. Görmek lazım ne oluyor ne bitiyor.
Projeyi komple paylaşır mısın? Eve geçince debug deneyeyim. Application.Exit diğer formlari kendi formunla beraber direkt yok etmeli açık olsalar bile. Görmek lazım ne oluyor ne bitiyor.
Nasıl paylaşabilirim acaba? Sosyalde dosya paylaşılabiliniyor mu? C#'ı ve Visual Studio'yu yeni öğreniyorum. Yanilmiyorsam repos klasöründe ki proje dosyalarını paylaşmam gerekiyor değil mi?
Nasıl paylaşabilirim acaba? Sosyalde dosya paylaşılabiliniyor mu? C#'ı ve Visual Studio'yu yeni öğreniyorum. Yanilmiyorsam repos klasöründe ki proje dosyalarını paylaşmam gerekiyor değil mi?
Ödevime veri tabanı bağlı. Bu projeyi arşivlediğim zaman içinde veri tabanı olmayacağı için problem yaşar mısınız acaba? Yoksa veri tabanını da mı .bak uzantılı yedekleyip arşivlemeliyim acaba?
Ödevime veri tabanı bağlı. Bu projeyi arşivlediğim zaman içinde veri tabanı olmayacağı için problem yaşar mısınız acaba? Yoksa veri tabanını da mı .bak uzantılı yedekleyip arşivlemeliyim acaba?
Veri tabanın eğer MySQL ise mysqldump kullan onu da ekle. MsSQL'se sadece kodu at yeter ben devre dışı bırakırım bağlantıyı. Amacımız sadece kapanma durumunda ne yaptığını görmek.
Veri tabanın eğer MySQL ise mysqldump kullan onu da ekle. MsSQL'se sadece kodu at yeter ben devre dışı bırakırım bağlantıyı. Amacımız sadece kapanma durumunda ne yaptığını görmek.
Problem bundan kaynaklanıyor. Sürekli yeni bir ana sayfa başlatıyorsun. Dolayısıyla diğer ana sayfalar gizlide kalmış oluyor. Çözüm basit, ana sayfayı ya açık formlardan getireceksin, yada dilin özelliklerinden yararlanacaksın.
C# bir OOP dil. Object Oriented Programming (Nesne yönelimli programlama) dili. Bu dilin sahip olduğu özelliklerden biri ise farkında olmadan kullandığın constructorlar. Constructor'da FormAnasayfa'yı parametre olarak alırsan, daha sonrasında çağırmak istediğinde mevcut tek örneğini çağırmış olacaksın, kopyasını değil.
Eki Görüntüle 2210217
Problem bundan kaynaklanıyor. Sürekli yeni bir ana sayfa başlatıyorsun. Dolayısıyla diğer ana sayfalar gizlide kalmış oluyor. Çözüm basit, ana sayfayı ya açık formlardan getireceksin, yada dilin özelliklerinden yararlanacaksın.
C# bir OOP dil. Object Oriented Programming (Nesne yönelimli programlama) dili. Bu dilin sahip olduğu özelliklerden biri ise farkında olmadan kullandığın constructorlar. Constructor'da FormAnasayfa'yı parametre olarak alırsan, daha sonrasında çağırmak istediğinde mevcut tek örneğini çağırmış olacaksın, kopyasını değil.