26 Nisan 2015 Pazar

55 C# Görsel Programlama 55 Olaylar İle Metodları İlişkilendirme

Merhabalar herkese. Bu anlatımımda sizlere nesne olayları ile metodların nasıl ilişkilendirildiğini istersek dinamik olarak kod ile bizim bunu nasıl yapabileceğimizi anlatmaya çalışacağım.

Öncelikle kısaca ne demek istediğimi örnekle anlatmaya çalışayım. Bir form açalım ve form üzerine bir buton ekleyelim.



Butonumuz seçili iken Properties bölümünde Event bölümüne bakarsak bu nesneye ait olayları görüntüleyebiliriz. Onları bir görelim.



Buradaki herhangi bir olaya çift tıklarsak bu olay için kodları yazabileceğimiz metod ana kod ekranına yani form1.cs kod kısmına eklenecektir. Bu buton ile ilgili bu olay ise Form1.Designer.cs dosyasına eklenir. Onları yerini görelim isterseniz. Seçtiğimiz buton ile ilgili Click olayına çift tıklayalım.




Görüldüğü gibi olayın metodu Form1.Cs kod ekranına bu şekilde eklendi. Görüldüğü gibi buton ile ilgili bu metod object ve EventArgs türünde iki değişken almaktadır.

Birde bu metodun olayla ilişkilendirildiği bölümü görelim.



Form1. Designer.cs dosyasına baktığımızda Windows Form Designer generated code bölümünde soldaki + işaretine tıkladığımızda kodlar açılacaktır.



Açıldığında her nesnenin özellikleri görüntülenecektir. Button1 kısmına bakarsak kırmızı ile işaretlediğim bölümde metodun olayla nasıl ilişkilendirildiğini rahatlıkla görebilmekteyiz.


Metoda yazdığımız her kodda işlemi bu şekilde yapılacaktır.


Şimdi gelelim eğer biz bunları kendimiz yapmak isteseydik butonu dinamik olarak oluştursak ve olay atamak istesek nasıl ilişkilendireceğiz bunu inceleyelim.

Program bize şunu yapsın istiyorum. Butonun üzerine gidilince rengi mavi buton üzerinden ayrıldığımda ise eski rengine dönsün istiyorum.

Bu olayı sağlıcak buton olayı ilki mousehover ayrılma olayı da mouseleave dir.



Bu şekilde kendi kodlarımı yazdık. Mavi yapabilmek için mavibuton metodunu yazdım geri renge döndürmek için gributon metodlarını yazdım. Bunları buton olayı ile ilişkilendirebilmek için object ve EventArgs değişkenlerini almaları gerektiği atlanılmamalıdır.Yoksa olayımızı metodla ilişkilendirdiğimizde hata alırız. 


Artık geri kalan işlem yazdığımız metodları hangi olay ile ilişkilendireceğimiz. Şimdide onlara bakalım.



Bu olaylarımızı form un load olayına ekliyoruz. Hangi nesne için yazıyorsak nesnenin adını yazıyoruz. Daha sonra yapılmasını istediğimiz olayı yazıyoruz  ve += dedikten sonra iki kere tab'a bastığımızda bizim için kodun oluşturulmuş olduğunu görürüz. EventHandler metodu parantezleri içinede ilişkilendirmek istediğimiz metodu yazıyoruz. 

Gelin yaptığımız işlem nasıl sonuç verdi buna bakalım.



Ekran resmi alırken mouse görünmedi ama mouse üzerinde iken butonumuz mavi rengini aldı.



Mouse'u buton üzerinden çektiğimizde de eski halini aldığını görüyoruz.

Son bir ipucu bilgi daha verip huzurdan ayrılayım.

Eğer istersek bu ilişkilendirmeyi properties den kolaylıkla yapabiliriz.

Form1 load olayına yazdığımız kodları silelim ve şunu yapalım.



Olayları görebildiğimiz properties bölümünde direk olaya yazdığımız metodu göstererek direk bağlayabiliriz. Bu haliyle çalıştırdığımızda da kodlarımızın aynı işlevi görüdüğünü göreceğiz.


Bu anlatımımda olaylar ile metodların hangi yöntemlerle ilişkilendirilebildiğini anlatmaya çalıştım umarım faydalı bir yazı olmuştur. Selametle.


Murat Bilginer





Hiç yorum yok:

Yorum Gönder