C# – Form2’den Form1’e Erişmek ve OpenForms kullanımı

Bu yazdımda sizlere, bir Form’dan açılmış yeni Form üzerinden bir önceki Form’a veya başka açık bir Form’a erişmeyi anlatayım.

Projelerimizde Form2’den Form1’e erişmek, Form1 üzerindeki komponentlerin özelliklerini değiştirmek gibi birçok ihtiyaç doğmaktadır. Mesela bir Textbox’a tıklayıp açılan bir Form’da hesaplamalar yaptırıp, çıkan sonucu tekrar Textbox’a yazdırmak bunun en basit örneklerinden biridir.

Örnek kodlara bakacak olursak;

private void txtHesap_Enter(object sender, EventArgs e)
{
    FormIkinci ikinciForm = new FormIkinci(); //İkinci Formumuzu açmak için nesneyi oluşturuyoruz.
    ikinciForm.ShowDialog(); //ShowDialog ile açtırdığımızda, açılan Form'dan çıkılmadan program üzerinde başka bir nesneye tıklanmaz veya geçilmez.
}
private void btnHesapla_Click(object sender, EventArgs e)
{
    int hesaplananDeger = 3 + 5; //Örnek Bir Değer Hesapladık.
    FormIlk ilkForm = (FormIlk)Application.OpenForms["FormIlk"]; //FormIlk nesnesini tanımlıyoruz. Burda önemli olan new diye yeni bir nesne değil, Application.OpenForms komutuyla açık olan Formlar arasından tanımlıyoruz.
    ilkForm.txtHesap.Text = hesaplananDeger.ToString(); //FormIlk Formumuz üzerindeki TextBox'un Text Değerini Yazdırıyoruz.
    this.Close(); //Hesapla Butonuna Bastıktan Sonra Formu Kapatıyoruz.
}

Örnek kodların üzerinde neler yaptığımızı anlattım. Aslında bunun çok daha farklı yöntemleri var ama en basit yöntem budur. Tabiki bu şekilde yapabilmek için, erişeceğimiz nesnemizin Modifiers özelliğini public gibi değerlere getirmek gereklidir. Buda programımızda bir açık aslında. Daha farklı yöntem için diğer bir konuda DialogResult yöntemi ile değer döndürmeyi anlattım. Onuda inceleyebilirsiniz. Diğer konumuza buraya tıklayarak gidebilirsiniz.

 

Anlamadığınız veya takıldığınız yerler olursa yorumlarda sorunuzu sorabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir