C# Windows Forms uygulamasında bir formdan açık olan başka bir formdaki kontrollere nasıl erişirim?

0

Okul projem için Visual Studio 2012 ile Windows uygulaması geliştiriyorum. İki tane Windows Formu var. Birinin üzerinde buton kontrolü var. Diğer form üzerinde textbox kontrolü var.  Ben birinci formdaki buton tıklandığında ikinci açık olan formdaki textbox'ın text özelliğini alıp birinci formdaki label kontrolünün text özelliğine aktarmak istiyorum. Fakat bir türlü yapamadım. Aşağıdaki gibi Form2'ye erişiyorum fakat Ad.Text değeri bir türlü gelmiyor.

Form2 f2 = new Form2();
Label1.Text = f2.Ad.Text ;

Windows form uygulaması yazarken açık olan başka bir formda bulunan kontrollere ve özelliklerine nasıl erişebilirim?

ceyda ceyda (259)
5 yıl önce sordu

Toplam 2 Cevap


0

C# Windows Forms uygulamasında bir formdan açık olan başka bir formdaki kontrollere erişmek için o an açık olan tüm formlar arasında işlem yapmak istediğiniz formu bulmanız gerekir. Daha sonra istediğiniz işlemleri o form üzerinde uygulayabilirsiniz.

Sorduğunuz soruda Form1 üzerinde bulunan tıkladığınızda işlem yapmasını istediğiniz butonun click eventi'nde aşağıda bulunan kod bloğunu kullanarak istediğiniz işlemi yapabilirsiniz.   

Form2 f = new Form2();
 foreach (Form _f in Application.OpenForms)
 {
       if (_f.Name == "Form2")
           f = (Form2)_f;
 }
 Label1.Text = f.Ad.Text;

           

ergin ergin (2515)
5 yıl önce cevaplandı

  • çok teşekkür ederim ceyda 5 yıl önce

0

Istedigin sonuca bu sekilde de ulasabilirsin. Yapman gereken 2 sey var. Birincisi Form1 de ulasmak istedigin kontrollerin get ve set methodlarını yazmak. İkincisi ise Form2'nin constructor ına Form1'i göndermek. 

 

Form1 Kodu:

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

        public TextBox getTextbox1 
        {
            get { return textBox1; }
        }

        public TextBox setTextbox1 
        {
            set { textBox1 = value; }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            new Form2(this).Show();
        }
    }

Form2 Kodu:

public partial class Form2 : Form
    {
        Form1 f1;

        public Form2(Form1 form)
        {
            InitializeComponent();
            f1 = form;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(f1.getTextbox1.Text);
        }
    }

 

oozkan oozkan (1)
5 yıl önce cevaplandı

  • çok teşekkür ederim, deneyeceğim. ceyda 5 yıl önce

üyelik gerektirir

Cevap yazabilmek için üye girişi yapmalısınız.

Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol