Event

Windows uygulamalarında kullandığınız kontroller üzerinde belirli bir şartın sağlanması durumunda istediğiniz kodları çalıştırabiliyorsunuz (Click-TextChange-Close vs.). Çalıştırılan bu kod bloklarının genel adının “event” olduğunu sanırım söylememize gerek yoktur. Bizim söylememiz gereken bu blokların nasıl oluşturulabildiği veya nasıl çağrılabildiği hususudur. Bu amaçla basitten zora doğru işlemleri sizlere izah etmeye çalışacağım.

Aşağıdaki örnek uygulamada kodla yeni bir Button kontrolü yaratılarak tıklandığı zaman istediğimiz prosedürü çağıracağız.

private void button2_Click(object sender, EventArgs e)
{
Button YeniButon = new Button();
this.Controls.Add(YeniButon);
YeniButon.Name = “Yeni_Kontrol”;
YeniButon.Click += new System.EventHandler(Tikladim);
}
private void Tikladim(object Nesne, EventArgs Ahmet)
{
MessageBox.Show(((Button)Nesne).Name + ” Kontrolü
Tiklandi”);
}

Veya

private void button5_Click(object sender, EventArgs e)
{
Button YeniButon = new Button();

this.Controls.Add(YeniButon);
YeniButon.Name = “Yeni_Kontrol”;
YeniButon.Click += new System.EventHandler(Tikladim);
{
MessageBox.Show(” Kontrolü Tiklandı”);
}
}

Aynı Mantıkla bir TextBox kontrolü oluşturup ona “event” yaratmak isterseniz aşağıdaki şekilde bir kodlama kullanmanız gerekecektir.

private void button3_Click(object sender, EventArgs e)
{
TextBox YeniText = new TextBox();
this.Controls.Add(YeniText);
YeniText.Name = “Yeni_Text”;
YeniText.KeyPress += new
KeyPressEventHandler(this.TusaBas);
}
private void TusaBas(object Nesne, KeyPressEventArgs Semih)
{
if (Semih.KeyChar == (char)13)
{
MessageBox.Show(((TextBox)Nesne).Name + ” Kontrolü İçerisinde Enter Tuşuna Bastınız”);
}
}

Bu aşamadan sonra uygulamanızı çalıştırıp Button kontrolüne tıklarsanız, yeni bir “TextBox” yaratılacak, içerisine veri girişi sırasında “Enter” tuşuna basarsanız “TusaBas” isimli prosedür işletilecektir.

Yukarıdaki şekilde oluşturulan yordamlar başka türlüde yaratılabilir. Bu amaçla “event” ve “delegate” komutlarından faydalanabilirsiniz. Aşağıdaki örnek uygulamada kodla yaratılan kontrole “Click” yordamı eklenecektir.

public delegate void BenimYordamim(object sender, EventArgs e);
public event BenimYordamim Tikla;

public void Calistir(object sender, EventArgs e)
{
MessageBox.Show(((Button)sender).Name + “***” + “Yordam
İşledi”);
}
private void button1_Click(object sender, EventArgs e)
{
Button YeniButon = new Button();
this.Controls.Add(YeniButon);
YeniButon.Name = “Kod_Düğme”;
Tikla = new BenimYordamim(Calistir);
YeniButon.Click += new EventHandler(Tikla);
}