|
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 için önceden tanımlanmış olaylara ilişkin kodlar
yazılarak programın çalışması sağlanır. Örneğin siz ,formun
üzerine çift tıklanması durumunda bir olayın meydana gelmesini
istiyorsunuz. Bunun için 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
yüklendiği zaman meydana gelen olaydır.Bu olay kullanılarak
,kullanıcıya formu göstermeden önce yapılması gereken işler
yapılabilir. Örneğin ,kullanıcı programı başlattığında ilk önce
kullanıcıdan,kullanıcı adı ve şifresini alarak daha sonra
yüklenecek 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 gerçekleştirmek
için ,yani formun kullanıcı tarafından hiçbir şekilde
kapatılmaması için Cancel değişkenine True değerini atamalıyız.
Aşağıdaki örnekte 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 büyükse form kapanmıyor.
Private Sub Form_Unload(Cancel As Integer)
Dim c
c = InputBox("Formu kapatmak için bir sayi giriniz", "Çikis")
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 için formun program tarafından End komutu kullanılarak
sonlandırılmaması gerekir.
Yukarıdaki programı çalış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.Örneğin formun genişliğinin
veya yüksekliğinin değiştirilmesi bu olayın meydana gelmesini
sağlar.
KeyPress(KeyAscii As Integer) :
Formun çalışması sırasında yön 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ı
öğrenebilirsiniz. Aşağıdaki program, formun çalış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 açıklamalarını bulabilirsiniz.
|
Shift
|
Parametresinin Değeri
Açı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 örnekte 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 için
gösterilen değerler bu olayda da geçerlidir.
MouseDown(Button As Integer, Shift As
Integer, X As Single, Y As Single) : Bu olay formun üzerinde
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 açıklanan değerler bu olaydaki Shift parametresi için de
geçerlidir.X ve Y parametreleri ise bu olayının meydana geldiği
andaki mouse işaretçisinin yerinin Twip cinsinden değerlerini
tutarlar. Aşağıdaki örnekte mouse'un sol tuşuna tıklandığı yerin
Twip olarak değeri kullanıcıya mesaj olarak gösteriliyor.
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şaretçisinin form üzerindeki 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 üst üste iki tıklama yapıldığında meydana
gelir. Aşağıdaki programda kullanıcıya, formun herhangi bir yerine
çift tıklaması durumunda bir mesaj gösterilecektir.
Private Sub Form_DblClick()
MsgBox "Mouse ile Çift Tıklama Yaptiniz.", , "Çift Tiklama"
End Sub
 |