C# – İkinci Form’dan Değer Döndürme ve DialogResult Kullanımı

Bu yazımda sizlere, açılmış olan ikinci Form’dan geri dönüş değeri almayı anlatacağım.

Örnek verecek olursa açılan bir Form’da işlem tamamlanıp tamamlanmadığını öğrenmek istiyoruz. Bunun için bir çok yöntem var ancak bence en hızlı ve anlaşılabilir olanı şuanda anlatacağım yöntemdir.

Form’dan DialogResult cevabı almak.

Öncelikle iki değer almayı planlıyorum. İki değer ikinci form’da değişkenleri tanımlıyoruz.

public string donecekDeger1 {get;set;} 
public string donecekDeger2 {get;set;}

sonrasında bu değerlere hangi butona basıldığında yada hangi işlemler yapıldığında değer atanacağını belirtiyoruz. Burası sizin düşüncenize kalmıştır. Örnek vermek gerekirse

private void btnKaydet_Click(object sender,EventArgs e)
{
    this.donecekDeger1 = "Kayıt İsmi : Örnek İsim";
    this.donecekDeger2 = DateTime.Now.ToString(); //mesela
    this.DialogResult = DialogResult.OK;
    this.Close();
}

Benim örneğimde kaydet butonuna basıldığında donecekDeger1 değişkenine kayıt ismini, denecekDeger2 değişkenine de anlık olarak tarih ve saati atıyoruz.

Sonrasında dikkat etmeniz gereken satır DialogResult satırı, bu satırda geri dönüşün nasıl olacağını belirtiyoruz. Mesela iptal veya kapat butonu gibi butonlara, DialogResult.Cancel atayıp bunu duruma göre işleyebiliriz. Bizim satırımızda DialogResult.OK şeklinde dönüş alıyoruz. Kaydet butonuna basılınca OK dönüşü alacağımız anlamına gerekiyor.

using (var form = new frmIkinciForm())
{
    var sonuc = form.ShowDialog();
    if (sonuc == DialogResult.OK)
    {
        string deger1 = form.donecekDeger1;            //Değer sayfa kapandıktan sonra bile alınabilir halde
        string degerTarih = form.donecekDeger2;
        //Bu değerleri istediğimiz yerde kullanabiliriz artık.

        //Mesela
        txtGelenDeger.Text = deger1;
    }
}

Örnek kod üzerinde gördüğünüz gibi, form’u açıp içindeki değerleri, eğer DialogResult değerinde OK dönüşü almışsak, istediğimiz gibi kullanıyoruz.

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

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir