Bu yazımızda sizlerle birlikte Visual Basic 'de formlara uygulanabilecek olayları inceleyeceğiz. Bildiğimiz gibi Visual Basic olay temelli bir programa aracı olup, kullanılan kontroller icin onceden tanımlanmış olaylara ilişkin kodlar yazılarak programın calışması sağlanır. Orneğin siz ,formun uzerine cift tıklanması durumunda bir olayın meydana gelmesini istiyorsunuz. Bunun icin formda tanımlanmış DblClick olayına ilgili kodu yazarak bu olayın meydana gelmesini sağlayabilirsiniz. Şimdi sırasıyla formlara uygulanabilecek olayları inceleyelim.
Load() : Formun ilk defa hafızaya yuklendiği zaman meydana gelen olaydır.Bu olay kullanılarak ,kullanıcıya formu gostermeden once yapılması gereken işler yapılabilir. Orneğin ,kullanıcı programı başlattığında ilk once kullanıcıdan,kullanıcı adı ve şifresini alarak daha sonra yuklenecek ana formda bu bilgileri kullanarak bir veritabanına bağlantı sağlayabiliriz.
Activate() : Formun ,programda aktif olması sırasında meydana gelir. Eğer programımızda bir tane form varsa bu form her zaman aktiftir. Bu olaya ,formun aktif olması sırasında yapılmasını istediğimiz olayları yazabiliriz.
Deactivate() : Formun , programda aktivitesini kaybetmesi sırasında meydana gelen olaydır. Bu olaya ,formun aktivitesini kaybetmesi sırasında yapılmasını istediğimiz olayları yazabiliriz.
Unload(Cancel As Integer) : Formun kapatılması sırasında meydana gelen olaydır. Ayrıca bu olayda tanımlanmış Cancel değişkenini kullanarak sadece bizim istediğimiz durumda formun kapanmasını sağlayabiliriz. Bunu gercekleştirmek icin ,yani formun kullanıcı tarafından hicbir şekilde kapatılmaması icin Cancel değişkenine True değerini atamalıyız. Aşağıdaki ornekte kullanıcı formu kapatmak istediği zaman bir pencereyle(inputbox) karşılaşıyor ve bir değer girmesi isteniyor. Eğer girdiği değer 2 ve 2'den buyukse form kapanmıyor.
Private Sub Form_Unload(Cancel As Integer)
Dim c
c = InputBox("Formu kapatmak icin bir sayi giriniz", "Cikis")
If c > 2 Then
Cancel = True
Else
Cancel = False
End If
End Sub Not : Bu olay formun End komutuyla sonlandırılması sırasında meydana gelmez. Yani bu olayın meydana gelebilmesi icin formun program tarafından End komutu kullanılarak sonlandırılmaması gerekir.
Yukarıdaki programı calıştırdığınızda aşağıdakine benzer bir ekranla karşılaşmalısınız.
Resize() : Formun boyutlarının değiştirilmesi sırasında meydana gelir.Orneğin formun genişliğinin veya yuksekliğinin değiştirilmesi bu olayın meydana gelmesini sağlar.
KeyPress(KeyAscii As Integer) : Formun calışması sırasında yon ve kontrol(Ctrl,Alt,Shift) tuşları dışında herhangi bir tuşa basılması sırasında meydana gelen olaydır. Bu olayda basılan tuşun Ascii değeri KeyAscii değişkenine atanır. Bu değişkeni kullanarak hangi tuşa basıldığını oğrenebilirsiniz. Aşağıdaki program, formun calışması sırasında hangi tuşa basıldığını ekrana yazar.
Private Sub Form_KeyPress(KeyAscii As Integer)
Show
Print Chr(KeyAscii) & " tusuna bastiniz."
End Sub
KeyDown(KeyCode As Integer, Shift As Integer) : Bu olay herhangi bir tuşa basıldığı anda meydana gelir. Bu olayda iki parametre kullanılır.Bu parametrelerin biri basılan tuşun Ascii değerini , diğeri ise bu tuşla birlikte Shift,Ctrl ve Alt tuşlarından herhangi birine basılıp basılmadığı konusunda bilgi tutar. Aşağıdaki tabloda Shift parametresinin alabileceği değerler ve acıklamalarını bulabilirsiniz.
Shift
Parametresinin Değeri Acıklama
0
Shift ,Ctrl ,Alt tuşlarından herhangi birisi basılı durumda değil.
1
Shift tuşu basılı durumda.
2
Ctrl tuşu basılı durumda.
3
Shift ve Ctrl tuşları basılı durumda.
4
Alt tuşu basılı durumda.
5
Shift ve Alt tuşları basılı durumda.
6
Ctrl ve Alt tuşları basılı durumda.
7
Shift ,Ctrl ve Alt tuşları basılı durumda. Aşağıdaki ornekte kullanıcı Ctrl tuşu ile birlikte A tuşuna basarsa kullanıcıya mesaj verecektir.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 65 And Shift = 2 Then
MsgBox "Ctrl+A tus kombinasyonunu kullandiniz."
End If
End Sub
KeyUp(KeyCode As Integer, Shift As Integer) : Bu olay ise kullanıcının bastığı tuşu bırakması sırasında meydana gelir. Yukarıdaki tabloda Shift parametresi icin gosterilen değerler bu olayda da gecerlidir.
MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) : Bu olay formun uzerinde mouse'un herhangi bir tuşuna basılması sırasında meydana gelir. Bu olayda kullanılan parametrelerden Button parametresi,kullanıcını mouse'un hangi tuşuna bastığı bilgisine tutar ve kullanıcı mouse'un sol tuşuna basmışsa 1,sağ tuşuna basmışsa 2,her iki tuşa birlikte basmışsa 3 değerini alır. İkinci parametre olan Shift ise mouse'un tuşlarına basıldığı sırada herhangi bir kontrol karakterine basılıp basılmadığı bilgisini tutar ve yukarıdaki tabloda acıklanan değerler bu olaydaki Shift parametresi icin de gecerlidir.X ve Y parametreleri ise bu olayının meydana geldiği andaki mouse işaretcisinin yerinin Twip cinsinden değerlerini tutarlar. Aşağıdaki ornekte mouse'un sol tuşuna tıklandığı yerin Twip olarak değeri kullanıcıya mesaj olarak gosteriliyor.
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
MsgBox ("Mouse'un yeri :" & Str(X) & "," & Str(Y))
End If
End Sub
MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) : Bu olay kullanıcını mouse'un bastığı tuşunu serbest bırakması sırasında meydana gelir ve kullanılan parametreler MouseDown olayındakilerle aynıdır.
MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) : Bu olay mouse işaretcisinin form uzerindeki yerinin değişmesi sırasında meydana gelir ve kullanılan parametreler MouseDown olayındakilerle aynıdır.
Click() : Bu olay mouse ile formun herhangi bir yerine tek tıklama yapıldığında meydana gelir.
DblClick() : Bu olay mouse ile formun herhangi bir yerine ust uste iki tıklama yapıldığında meydana gelir. Aşağıdaki programda kullanıcıya, formun herhangi bir yerine cift tıklaması durumunda bir mesaj gosterilecektir.
Private Sub Form_DblClick()
MsgBox "Mouse ile Cift Tıklama Yaptiniz.", , "Cift Tiklama"
End Sub

__________________