On Minggu, 20 Juni 2010 0 komentar

Untuk mewujudkan suatu program atau aplikasi yang user-friendy, suatu program diwajibkan mempunyai shortcut untuk beberapa pengoprasiannya untuk menggantikan kerja mouse. misal saja untuk keluar dari form user tidak perlu lagi klik tombol Close pada form tersebut, tapi cukup dengan menekan tombol Esc yang ada pada keybord. ataupun untuk melakukan perpindahan antar control, user awam cenderung menggunakan tombol Enter daripada tombol Tab.

Akan tetapi seringkali para programmer Visual Basic .NET (Pemula tentunya) mengalami kesulitan dalam menangkap event tombol pada keyboard, bayak sebenernya cara menangkap aksi tombol ini, misal saja dengan KeyPress event, KeyUp ataupun KeyDown event.

Private Sub form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If Asc(e.KeyChar) = Keys.Enter Then
SendKeys.Send("{tab}")
End If
End Sub

Tetapi event code diatas hanya bekerja jika hanya focus berada pada form1 atau jika hanya form1 kosong dan belum ada control didalamnya, tetapi apabila focus berada pada control yang ada didalamnya, misal saja TextBox, maka key event diatas tidak akan bekerja.

akan tetapi ada beberapa trik untuk menangkap event tombol tanpa memandang focus berada dimana. Ok, langsung kita coba aja script code berikut:

Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
Try
If msg.WParam.ToInt32 = Convert.ToInt32(Keys.Escape) Then
Me.Close()
Else
Return MyBase.ProcessCmdKey(msg, keyData)
End If
Catch ex As Exception
Return False
End Try
Return MyBase.ProcessCmdKey(msg, keyData)
End Function

Sekarang coba jalankan program yang barusan dibikin, dan tekan tombol Esc, lalu lihat apa yang terjadi….

Semoga Membantu...

0 komentar:

Posting Komentar