Merhaba, bu yazıda C# Windows Form projesinde butonların metodlarını birbirine bağlamayı öğreneceğiz. Yani birden fazla butonun aynı dinleyici metod (Listener) tarafından dinlendiğini düşünelim. Grupladığımız butonlardan hangisine basarsak basalım tek bir metod tetiklenecek ve metodun içerisinde bastığımız butonları yönetebileceğiz.
- Basit bir örnekle başlayalım, GUI’ye 3 adet buton ekleyelim ve bu 3 butonun üzerine sırasıyla 1, 2, 3 yazalım. Daha sonra bir textbox ekleyelim. Yapacağımız işlem, bu 3 butondan hangisine basarsak basalım tek bir metod çalışacak ve hangi butona bastığımız textboxta gözükecek.
- Sırası ile butonların ‘Action Listener’ larını düzenleyeceğiz. İlk olarak 1. butonun Click eventini “butonlar” olarak düzenleyelim ve entere basalım. Bu işlem bizi metoda götürcektir. Daha sonra tekrar tasarım kısmından aynı işlemi buton 2 ve buton 3 için de yapalım. Burada dikkat edilmesi gereken konu bütün butonların Click eventi “butonlar” olmalıdır.
- Sırada metoda gidip kodlamaya başlamak var. Tıklanan buton bilgisini almak için metodun parametrelerinden object türündeki sender argümanını kullanacağız ve Button objesine cast işlemini gerçekleştireceğiz. Bu şekilde tıkladığımız butonun referansını bir buton objesine atabilir ve özelliklerine bu değişken üzerinden erişebiliriz.
Button button = (Button)sender;
- Şimdi bu nesne üzerinden kontrol işlemlerini yaparak textbox a yazdırmak istediklerimizi yazdıracağız. Bu işlem için if else yapısı ile kontrol sağlayacağız.
private void buttonlar(object sender, EventArgs e)
{
Button button = (Button)sender;
if(button.Text.Equals(“1”))
{
textBox1.Text = “Buton 1’e tıklandı.”;
}
else if(button.Text.Equals(“2”))
{
textBox1.Text = “Buton 2’ye tıklandı.”;
}
else
{
textBox1.Text = “Buton 3’e tıklandı.”;
}
}