Makale Özeti

Bu makalemizde VB.NET dilinde var olan klasik en çok kullanılan olaylara değineceğiz.

Makale

VB.NEtte Olaylar OLAYLAR(Eventlar)
Bu makalemizde VB.NET dilinde var olan klasik en çok kullanılan olaylara değineceğiz.

Nesneye yönelik programlama dillerinde bir nesnenin 3 temel karakteristik özelliği vardır. Bir nesnenin özellikleri vardır. Bir nesnenin metotları vardır. Bir nesnenin olayları vardır. Yani terim olarak "Event" olarak ifade edilir. VB.NET dili içinde her nesnenin olayları olabilir. Ancak bizim için önemli olan ve genellikle en çok kullanılan "Mouse" "Klavye" ve "Form" olaylarıdır. Bu yazımızda bu üç nesnenin olaylarını inceleyeceğiz. Visual programlama dillerinde yazılan standart programlar bu üç nesnenin olaylarını algılama ihtiyacı hissederler.


1- Mouse Olayları:

İlk olarak Mouse olaylarından bahsetmek istedim. Windows tarzı işletim sistemleri için Mouse her şeyi birbirine bağlayan bir nesnedir. Yazılım olarak Mouse İşletim sistemi içinde gezmemizi ve çeşitli öğelere ulaşmamızı sağlar. Bunu sağlarken tabii ki işletim sisteminin bu olaylara duyarlı olması gerekir. İşletim sistemin bu nesnenin duyarlı olduğu birkaç olayı vardır. Şimdi bunları sırası ile kısaca açıklayalım.


1-Mouse Down Olayı:

Mouse Down olayı Mousun herhangi bir tuşuna basılması ile oluşur. Gelişmiş Mouselarda 3 yada daha fazla tuş olabilir. Bu olay herhangi bir tuşu kapsar. Hangi tuşa basıldığı bu olayın dışındadır. Söz dizimi şu şekilde gerçekleşir.


Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
End Sub

Şunu hatırlatmak isterim ki Mouse nesnesi form nesnesine aittir. Yani her formun bir Mouse olayı olabilir. Zaten form olmadan Mouse da olmaz. Ayrıca az önce yaptığım sınıflandırmayı şöyle açabilirim. Formun Mouse olayı Formun klavye olayı ve formun diğer olayları olarak açıklanabilir.


2-Mouse Up Olayı:

Mouse tuşunun serbest bırakılması ile oluşan olaydır.Söz dizimi aşağıdaki gibidir.


Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp

End Sub
3- Mouse Move Olayı:

Mouseun Form üzerinde hareket ettirilmesi ile oluşan bir olaydır. Formun üzerine iki adet label bırakıp Şu aşağıdaki kodu yazarsak Mouseun hareket ettirildiğinde x,y değerlerini labellar üzerinden okuyabiliriz.

Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
Label1.Text = e.X
Label2.Text = e.Y
End Sub

Kodu analiz edersek e değişkeni Mouse olayları sınıfının bir nesnesi olarak tanımlanmış ve bütün özellik ve metotları kendi içinde barındırıyor. Labellara x ve y değerlerini yazdırıyor.


3-Mouse Butonlarının Kontrolü:

Mouse olaylarını tanımlarken MouseEvntArg sınıfının özelliklerinin barındıran e nesnesinin e. Button özelliğine bakılır. e.Button şu değerleri alabilir.

MouseButtons.Left: Butonun sol tuşuna basılmıştır.
MouseButtons.Middle:Butonun Orta tuşuna basılmıştır.
MouseButtons.Right: Butonun Sağ tuşuna basılmıştır.
Anlamlarını taşımaktadır.

2- Klavye Olayları:

Klavye ile ilgili olaylar Mouse olaylarına benzer ancak klavye yapı ve kullanım itibariyle Mousedan biraz farklıdır. Örneğin klavye için move diye bir şey söz konusu olamaz. Keymove herhalde imkansıdır. Klavyede tuşlarda olan Up Down ve Pres olayları vardır.


1-KeypDown olayı:

Klavyenin tuşuna basıldığını bildirir. Yani klavyenin tuşuna basılmıştır. Söz dizimi aşağıdaki gibidir.

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown


End Sub
2-KeypUP olayı:

Klavyenin tuşunun bırakıldığını bildirir. Söz dizimi aşağıdaki gibidir.

Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp

End Sub
2-KeyPress Olayı:

Klavyenin tuşuna basıp bırakıldığını bildirir. Söz dizimi aşağıdaki gibidir.

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress

End Sub

Mouse olaylarında da bahsettim bir "e" değişkenimiz söz konusudur. Bu değişken "System.Windows.Forms.KeyPressEventArgs" sınıfının özelliklerini e değişkenine yada bir başka tabirle nesnesine atar. Böylece e.keychar değerinde biz hangi tuşa basıldığını okuruz.

Gördüğünüz gibi klavye olayları da bunlar şimdi de sırada formun diğer olayları var. Tüm form olaylarını burada anlatamıyorum. Ama zaten bazı temel form olaylarını bildikten sonra diğerlerini de siz çıkartısınız. Ayrıca en önemlisi bu olayları etkilerini ve mantıksal kullanımını anlamak her şeyden önemli değil mi?

3- Diğer Form Olayları:
1-Activated Olayı:

Formun aktif hale gelmesi olayıdır. Söz dizimi aşağıdaki gibidir.

Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated

End Sub
2-DeActivated Olayı:

Formun aktif halini kaybetmesi olayıdır. Söz dizimi aşağıdaki gibidir.

Private Sub Form1_Deactivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Deactivate

End Sub
3-Change Olayı:

Herhangi bir kontrol nesnesinin içinde bir değişiklik gelmesi olayıdır. Söz dizimi aşağıdaki gibidir.

Private Sub Form1_ChangeUICues(ByVal sender As Object, ByVal e As System.Windows.Forms.UICuesEventArgs) Handles MyBase.ChangeUICues


End Sub
4-Clik Olayı:

Form üzerine Mouse ile tıklanması dediğimiz olayın gerçekleşmesidir. İki defa tıklanırsa doubleclik olayı oluşur. Söz dizimi aşağıdaki gibidir.

Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click

End Sub
5-Dropdown Olayı:

Form üzerinde bir combonun açılması olayıdır. Söz dizimi aşağıdaki gibidir.

Private Sub ComboBox1_DropDown(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ComboBox1.DragDrop


End Sub
6-Paint Olayı:

Formun yada form üzerindeki bir Pictureboxun şekil değiştirmesidir. Söz dizimi aşağıdaki gibidir.

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

End Sub

Tarık Gökhan Kızılırmak
tarikgokhan@hotmail.com