17 Haziran 2014 Salı

Eventteki Sender ve E değişkenleri (object sender, EventArgs e)

Merhaba arkadaşlar.
Bu yazımda size Visual C# yada Visual Basic de butona çift tıkladığımızda
object sender, EventArgs e
değişkenlerinin ne işe yaradığını anlatacağım.

Öncelikle sender den başlıyorum.

Tıklanan bir butondan örnek vermek istiyorum anlatırken. Şimdi Buttona tıkladın. Object Sender o butonu temsil eder. Kısaca Nesneyi temsil ediyor. Sender objesini kendi türüne yani butonda butona, checkboxda checkboxa parse ederseniz daha rahat işlem yaparsınız. Çok detaya girmeden bir işlem yapacaksanız otomatik Control nesnesine pars etmenizi öneririm. Bu sayede aynı methodu birden fazla kontrolde kullanırken sorun yaşamazsınız. Yani checkbox ve textboxa enter(içine girdiğimizde) dediğimizde kalınlığını koyu yapıp leave(içinden ayrıldığımızda) eski inceliğine geri döndürebiliriz. Basit olsun diye butondan örnek vermek gerekirse aşağıdaki kodu bir inceleyin.


private void button_Click(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    btn.Enabled = false;
}



Yukarıdaki kodu yazdığınızda ve butona tıkladığınızda button pasif olacaktır. 

İkinci bir örnek vermek gerekirse.(Yukarıdaki textbox örneği)
        private void TextKutulari_Enter(object sender, EventArgs e)
        {
            ((Control)sender).Font = new Font(((Control)sender).Font, FontStyle.Bold);
        }
 
        private void TextKutulari_Leave(object sender, EventArgs e)
        {
            ((Control)sender).Font = new Font(((Control)sender).Font, FontStyle.Regular);
        }

Burda da richtextbox, textbox, formattedtextbox, numericupdowna aynı eventleri atayarak sorunsuz bir şekilde kullanabilirsiniz. Benim tavsiyem kalınlığı ile oynamayın. Zira iki yazı arasına tıklarken yazı kalınlaşınca konumunda kayma olabiliyor.
Sanırım tam olarak ne demek istediğimi anladınız. 


Sırada e değişkenini anlatayım size.
e değişkeni o an meydana gelen olayın gözlemlerini içerir. Yani buttona tıkladığınızda fare mi kullanıldı yoksa keyboard mı kullanıldı öğreniriz fakat bi datagridview de dataGridView1_CellContentClick olayının DataGridViewCellEventArgs e değişkeninde Tıklanan column un dikey sırasını ve yatay sırasını elde edebiliriz.
örnek vermek gerekirse
 MessageBox.Show("Kolon : " + e.ColumnIndex.ToString() + "\nSatır : " + e.RowIndex.ToString());

E değişkeni hemen hemen her obje için farklı değerler elde edebilirsiniz. Bazen sizi ipten alır. Bu makalemin yararlı olması dileği ile.

Sormak istediğiniz soruları en kısa sürede yanıtlarım. Mail adresi bırakmanız yada yorum bırakmanız yeterlidir. 

1 yorum: