C# Formlar arası veri gönderme

kullanici308782 (1) 10 yıl önce sordu

Herkese merhaba benim size sormak istediğim şey bir başka forma veri aktarmak ama benim yapmak istediğim şey internetteki gibi ikinci formdaki nesnenin özelliklerindeki "modifiers" public yapmak değil oraya bir değişkene veriyi atıp istediğim zaman ondaki veriyi kullanmak istiyorum ya da önereceğiniz yöntemler varsa şimdiden teşekkür ederim 

Toplam 3 cevap


ergin (2539) 10 yıl önce cevapladı

Yanlış anlama olmadıysa açık olan ikinci formun içinden veri okumak istiyorsunuz.

Bunun için property yani özellikten yararlanabilirsiniz. Sizin için basit bir örnek.

Form 1 üzerinde sadece iki buton var. Birtanesi

Form 1

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            Form2 f2 = new Form2();          //ikinci formu aç  
            f2.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
              // Açık olan formlar içinde gezin ve form2'i bul. Sonra Data adındaki özelliği oku
            foreach(Form f in Application.OpenForms)
            {
                if (f.Name=="Form2")
                {
                    MessageBox.Show(((Form2)f).Data);
                }
            }
        }
    }
}

Form2 

Sadece bit buton var ve tıklandığında Data adındaki özelliğe veri dolduruyor.

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    public partial class Form2 : Form
    {
        public string Data { get; set; } // Özellik tanımlama
        public Form2()
        {
           
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Data = "uzmanim.net";
        }
    }
}

Yukarıdaki şekilde açık olan bir formdaki özelliğe atanmış veri okunabilir.

kullanici308782 10 yıl önce

Form 1 den Form 2 ye değişken gönderip orada istediğimiz zaman çağırmaktı ama sorunumu buldum

kullanici308782 (1) 10 yıl önce cevapladı

Biraz daha bakınca istediğim cevabı buldum arkadaşlar 

http://www.sanalkurs.net/forum/c-net/c-formlar-arasi-veri-aktarimi/

enoua (108) 10 yıl önce cevapladı

Form1 den Form2 ye veri göndereceğinizi farzedersek. 

//Form1

Form2 frm=new Form2();
frm.degisken="asd";
frm.ShowDialog();

//Form2

public string degisken="";

Form2 içinde oluşturduğumuz public değişkene bu şekilde ulaşabiliriz.