C# Form2 açılınca Form1'in kapanması

Taha Taş

Decapat
Katılım
3 Aralık 2021
Mesajlar
11
C# üzerinden bir kodlama yapıyorum. Amacım Form1 üzerinden bir butona basınca Form2 açılması. Form2 açılıyor fakat Form1 açık kalıyor. Form1'i kapatıyorum fakat bu sefer Form2 de kapanıyor. Amacım Form1 kapanınca Form2'nin açık kalması.
 
C# üzerinden bir kodlama yapıyorum. Amacım form1 üzerinden bir butona basınca form2 açılması. Form2 açılıyor fakat form1 açık kalıyor. Form1'i kapatıyorum fakat bu sefer form2 de kapanıyor. Amacım form1 kapanınca form2'nin açık kalması.

Ekrandan yok olması sizin için yeterli ise form1 üzerinden form2'yi açtığınız butonun Click özelliğine Form1.Hide() ekleyebilirsiniz.
 
Az biraz OOP üzerine kafa yorarsan, oluşturduğun Form2'nin, Form1 içerisinde oluşturulmuş bir nesne olduğunu anlarsın. Form1 kapandığında, onun içerisinde oluşan tüm nesnelerinde, o form1 instanceı ile birlikte yok olduğunu anlarsın.

Sonra az biraz Google'da aratırsan, aynı problemin çözümünün Hide() olduğunu görürsün fakat bunun potansiyel bir bugla geldiğini de görürsün. Çünkü Form2'yi kapattığında Form1 sadece gizlenmiş olacaktır ve dolayısıyla program tamamen kapanmayacak. Bunun çözümü olarak da Form2'nin exit eventine Application.Close koyarsın böylece program tamamen kapanır.

Yok program tamamen kapanmasın Form1 geri açılsın dersen de, Form2'nin constructoruna parametre olarak Form1'i ekler ve Form2'yi oluştururken this parametresi verirsen, Form2'den form2'yi çağıran form1'in örneğine erişir ve ondan da Show fonksiyonuna erişebilirsin. Yine OOP becerisi. OOP öğrenmezsen bunların hepsi anlamsız gelir.
 
Teşekkürler hallettim.

Az biraz OOP üzerine kafa yorarsan, oluşturduğun Form2'nin, Form1 içerisinde oluşturulmuş bir nesne olduğunu anlarsın. Form1 kapandığında, onun içerisinde oluşan tüm nesnelerinde, o form1 instanceı ile birlikte yok olduğunu anlarsın.

Sonra az biraz Google'da aratırsan, aynı problemin çözümünün Hide() olduğunu görürsün fakat bunun potansiyel bir bugla geldiğini de görürsün. Çünkü Form2'yi kapattığında Form1 sadece gizlenmiş olacaktır ve dolayısıyla program tamamen kapanmayacak. Bunun çözümü olarak da Form2'nin exit eventine Application.Close koyarsın böylece program tamamen kapanır.

Yok program tamamen kapanmasın Form1 geri açılsın dersen de, Form2'nin constructoruna parametre olarak Form1'i ekler ve Form2'yi oluştururken this parametresi verirsen, Form2'den form2'yi çağıran form1'in örneğine erişir ve ondan da Show fonksiyonuna erişebilirsin. Yine OOP becerisi. OOP öğrenmezsen bunların hepsi anlamsız gelir.
Şuan da öğrenciyim ve zaten kendimi geliştirmek için böyle şeyler yapıyorum. ChatGPT'ye falan da sordum, Google'de de araştırdım en son buraya sormaya karar verdim.
 
Teşekkürler hallettim.

Şu an da öğrenciyim ve zaten kendimi geliştirmek için böyle şeyler yapıyorum. ChatGPT'ye falan da sordum, Google'da de araştırdım en son buraya sormaya karar verdim.

Bellek yönetimi açısından hiç sağlıklı olmadığını söylemeliyim özel durumlar harici.
 
Şuan da öğrenciyim ve zaten kendimi geliştirmek için böyle şeyler yapıyorum. ChatGPT'ye falan da sordum, Google'de de araştırdım en son buraya sormaya karar verdim.
Öğrenci olman bir şey değiştirmiyor. Bende öğrenciyim. Yeterince araştırma yapmıyorsun demek, yada doğru araştırmıyorsun demek oluyor bu.
 

Geri
Yukarı