Memik Yanık - Kişisel Web Sitesi Ana Sayfa | Hakkımda | Kitap Önerileri | Fotoğraflarım | RSS RSS | İletişim

Başka bir formdaki nesneye ulaşmak


Forumun birisinde üyenin birisi C# uygulaması dahilinde başka formdaki nesnelere nasıl ulaşırım diye soruyordu. İşte kendisine verdiğim cevap: Bu konuda bilgi bulman biraz zordur. Çünkü şöyle bir durum var: Projenin başlangıç formunun yani Form1 sınıfının kopyası proje çalıştırıldığında otomatik olarak hazırlanıp ekrana getiriliyor. Projedeki ikinci formun örneğini(yani nesne hazırlama işlemini) kendin alıp ekrana getiriyorsun. 

2. formun kopyası üzerinde çalışırken otomatik olarak hazırlanıp projenin başlangıç formu yapılan Form1 sınıfının örneğine ulaşmak istiyorsun. Bu sorunu çözmenin değişik çözümleri olmakla birlikte en kestirmesi ve sağlıklısı Application sınıfından yararlanmaktır. Sorunu çözmene yardımcı olmak için 2 forma sahip bir proje hazırladım. İlk forma bir TextBox ve button yerleştirdim. İlk formdaki düğme tıklandığında ikinci form ekrana gelecek. İşte ilk formdaki düğmenin Click olayını temsil etmesi için yazdığım metot.

namespace
WindowsFormsApplication1
{
    public partial classForm1 : Form
    {
        publicForm1()
        {
            InitializeComponent();
        }
       private voidbutton1_Click(objectsender, EventArgs e)
        {
            Form2 F2 = newForm2();
            F2.Show();
        }
    }
}

Form1’de bu hazırlığı yaptıktan sonra Form2’nin üzerine yine bir Button ve bir TextBox yerleştirdim. Form2 aktif form iken Form2’nin üzerindeki düğme tıklandığı zaman Form2’deki TextBox’ın içeriği Form1’deki yani projenin başlangıç formunun üzerindeki TextBox’a aktarılacak. Bu amaçla yazdığım kod aşağıdadır. Bu teknikle Form1’de TextBox’a ulaşılırken bu TextBox’ı Modifiers özelliğinde değişiklik yapmaya gerek yoktur. 

namespace
WindowsFormsApplication1
{
    public partial classForm2 : Form
    {
        publicForm2()
        {
            InitializeComponent();
        }

      
private voidbutton1_Click(objectsender, EventArgs e)
        {
            Application.OpenForms[0].Controls["textBox1"].Text = textBox1.Text;  
        }
    }
}

Forumlardaki Sorular 31.05.2009 05:19:40

YORUM YOK


YorumlarYorum Yaz
Ana Sayfa | Hakkımda | Kitap Önerileri | Fotoğraflarım | RSS | İletişim
Memik Yanık 2004-2009 © Tüm Hakları Saklıdır.
Hazırlayan www.semgoksu.com