1. Ana Sayfa
  2. C Sharp

C# String ile Nesnelere Erişmek

C# String ile Nesnelere Erişmek
C# String ile Nesnelere Erişmek
+ - 0

Merhaba, C# String ile Nesnelere Erişmek yazım ile C# yazılarına son hız devam… Önceki yazımda C# String ile Değişkene Erişmek konusundan bahsetmiştim. Bu yazımda orada verdiğim yöntemden farklı bir yöntem kullanarak bir formdaki nesnelere ulaşacağız. Ve tabi ki ulaşmak istediğimiz nesne forma dinamik olarak eklenmiş olacak. Şöyle ki bir forma herhangi bir nesne eklemeyeceğiz. Çalışma zamanında forma kod ile eklenmiş olan bir nesneyi, string ile adını kullanarak bulacağız. :D

C# String ile Nesnelere Erişmek

Bu konuyu yine son projem olan C# IDLE Oyun Geliştirme – Fabrika Kurma Oyunu (İskelet) içerisinde kullandım. Verdiğim örnekler de o projeden alındı.

Şimdi gelin nasıl yaptığımızda bakalım.

İlk olarak forma bir flowlayoutpanel ekleyin. Sonra bir button. Ama bu button flowlayoutpanel ‘in dışında olsun. Yani şöyle.

C# String ile Nesnelere Erişmek

Şimdi buttona tıkladıkça flowlayoutpanel ‘e bir label üreteceğiz.

Bu kodlar, buttona her tıklandığında bir label üretecek. Üretilen her labelin text’i rastgele bir sayı olacak. Ancak Name özelliğinde yazanları biliyoruz ki zaten bilmek zorundayız.

Mesela buradaki labellerin adları, veritabanında yer alıyor olabilir.

        int counter = 1;
        private void button1_Click(object sender, EventArgs e)
        {
            Random rnd = new Random();
            Label lbl = new Label();
            lbl.Name = "MustafaBUKULMEZ_" + counter.ToString();
            lbl.Text = rnd.Next(100, 10000).ToString();
            lbl.AutoSize = false;
            lbl.Width = 150;
            lbl.Height = 25;
            flowLayoutPanel1.Controls.Add(lbl);
            counter++;
        }

Şimdi forma bir button ve bir textbox daha ekliyorum. button 2 ile textbox ‘a yazdığım name üzerinden, kodla ürettiğimiz labeli bulacağım ve text özelliğini değiştieceğim.

C# String ile Nesnelere Erişmek

button 2 kodlarını görelim

        private void button2_Click(object sender, EventArgs e)
        {
            Label lbl = flowLayoutPanel1.Controls.Find(textBox1.Text, true).FirstOrDefault() as Label;
            lbl.Text = textBox1.Text;
        }

Burada gördüğünüz gibi textbox’tan girilen ifadeyi kullanarak, label name üzerinden flowlayoutpanel içerisinde kodla eklenmiş labeli bularak text özelliğini, textbox’a girilen değer olarak değiştiriyor.

C# String ile Nesnelere Erişmek 3

Gördüğünüz gibi, biz labelleri eklerken text ‘lerini random sayılar veriyorduk. Ancak textbox’a bir label name’i yazıp, button 2 ye tıkladığımızda, ilgili labeli buldu ve text’ini değiştirdi.

Ben bu işlemi ve C# String ile Değişkene Erişmek yazımda bahsettiğim işlem ile konbinlemiştim. Veri tabanındaki bir tablodaki veriler ile değişkenleri bulup değerlerini değiştiyordum ve bu değerleri yine string ifadeler ile alarak aynı name’deki labellere yine string ifadeleri kullanarak yazıyordum. Bu biraz karmaşık gelebilir. C# IDLE Oyun Geliştirme – Fabrika Kurma Oyunu (İskelet) projesinin tanıtım videosunda bundan bahsetmiştim. O videoyu izleyebilirsiniz.


Bu yazımızda bu kadardı. Diğer derslerde görüşmek üzere…

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…  C# Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Discord’a katılmayı unutmayın.

Sağlıcakla ve kodla kalın….

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)