Diyelim ki formuma 10 buton ekledim ve hepsinin rengini değiştirmek istiyorum ve butonların ismini de btn1, btn2, btn3.. Olarak belirledim. Bu butonları teker teker sorgulamak zorunda mıyım? Bunun daha kolay bir yolu yok mu? Atıyorum btn(degisken).BackColor = Color. Red; degisken++; gibi bir şey yapamaz mıyım?
Bir controldeki her bir öğeye foreach ile erişebilirsin, örnek kod veriyorum.
foreach (Control item in this.Controls)
{
if (item is Button btn)
{
btn.BackColor = Color. Red;
}
}
Bu kod formdaki butonları bulmaya mı yarıyor? Kodu denediğimde formdaki butonlar kırmızı oluyor. Ama GroupBox'daki butonları görmüyor. Biraz kurcalamak istedim ama yine bir yol bulamadım. Bu kodlar aklımda fikir oluşmasına yardımcı oldu teşekkür ederim. Yine aynı yoldan giderek butonun ismini sorgulayabilir miyim? Ya da aslında en başından beri aklımda olan bir şeyi soracağım buton adını değişkene atamaz mıyım? Yani
string btn = "btnOda";
Btn. Text = "blabla";
Cevaplarınız için teşekkür ederim salak saçma bir olay için zaman harcıyorsunuz.
Şimdi biraz daha kurcalayınca çözdüm işi. Butonları bulup veritabanından sorguladım ve rengini değiştirmeyi başardım. Çok teşekkür ederim beni 800 satır kod çöplüğünden kurtardınız.
Bir Control'deki her bir öğeye foreach ile erişebilirsin, örnek kod veriyorum.
foreach (Control item in this.Controls)
{
if (item is Button btn)
{
btn.BackColor = Color. Red;
}
}
Şimdi biraz daha kurcalayınca çözdüm işi. Butonları bulup veritabanından sorguladım ve rengini değiştirmeyi başardım. Çok teşekkür ederim beni 800 satır kod çöplüğünden kurtardınız.
Bir sorum daha olacak Groupbox'daki butonları nasıl ulaşacağım?
Kod içerisinde "this.Controls" yazan kısmı "Groupboxınınadı.Controls" ile değiştir. Groupboxınınadı kısmına kendi groupboxının adını yazman gerek tabi.