Görsel programlama dillerinde kontrolleri gruplandırmak ve o gruptaki kontroller üzerinde işlemler yapmak isteyebiliriz. Bu yazıda C# dilinde kullanılan groupbox kontrolünün içine eklediğimiz textbox nenelerinin içindeki değerleri temizlemeyi öğreneceksiniz.
GROUPBOX KONTROLÜ NEDİR?
Windows formunda GroupBox, üzerinde birden fazla kontrol içeren ve kontroller birbiriyle ilişkili olan bir kapsayıcıdır. Veya başka bir deyişle, GroupBox, uygun bir isteğe bağlı başlığa sahip bir kontrol grubu etrafında bir çerçeve görüntüsüdür. Veya ilgili kontrolleri bir grupta sınıflandırmak için bir GroupBox kullanılır.
TEXTBOX(METİN KUTUSU) KONTROLÜ NEDİR?
Bir formdaki metni görüntülemek veya bir C# programı çalışırken kullanıcı girdisi almak için bir metin kutusu nesnesi kullanılır. Bir metin kutusunda, kullanıcı verileri yazabilir veya panodan kontrole yapıştırabilir.
Aşağıdaki örnekler yukarıdaki kontrollere uygun olarak yazılmıştır.
GROUPBOX İÇİNDEKİ KONTROLLERE ERİŞİM
Yöntem 1: GroupBox.Controls.OfType<tür>() metodu belirtilen türde filitreleme yaparak TextBox türündeki verileri seçme imkanı sunar.
Aşağıdaki örnek groupBox1 içindeki tüm textbox kontrollerini seçer ve içindeki verileri temizler.
var nesneler = groupBox1.Controls.OfType<TextBox>();
foreach (var nesne in nesneler)
{
nesne.Clear();
}
Yöntem 2: Ayrıca kulağını tersten tutmak isteyenler için aşağıdaki yöntemi de kullanabilirsiniz. Bu işlem için ilk olarak Groupbox controlünün çocukları olup olmadığını öğrenmek için HasChildren özelliği kullanılır. Ardından GroupBox.Controls bize sayılabilir bir liste sunmaktadır. foreach ile tüm öğeler üzerinde dönerek textbox olan nesneleri tespit ederek onları temizleyebiliriz.
if (groupBox1.HasChildren)
{
foreach (var item in groupBox1.Controls)
{
if (item is TextBox)
((TextBox)item).Clear();
}
}
UYGULAMA
Yukarıdaki görselde bulunan iki butona ayrı ayrı tıklandığında ilgili gruplar içindeki textboxları temizleyen kodlar aşağıdadır.
private void button1_Click(object sender, EventArgs e)
{
var nesneler = groupBox1.Controls.OfType<TextBox>();
foreach (var nesne in nesneler)
{
nesne.Clear();
}
}
private void button2_Click(object sender, EventArgs e)
{
var nesneler = groupBox2.Controls.OfType<TextBox>();
foreach (var nesne in nesneler)
{
nesne.Clear();
}
}
Ekran Çıktısı:
Yorumlar