Kita tahu bahwa di beberapa program, terdapat beberapa shortcut (seperti: tombol Shift untuk memperkecil, tombol ESC untuk keluar, Ctrl+S untuk menyimpan, Alt+x untuk keluar, dll.). Ada beberapa perkenalan di masa lalu yang dapat dilakukan dengan menggunakan API Win32, tetapi ini terlalu rumit. Faktanya, VB sendiri telah memberi kita fungsi ini.
Mari kita buat form baru Form1. Untuk pengoperasian keyboard, kita dapat melihat ada tiga event KeyPress(), KeyDown dan KeyUp.
Peristiwa KeyPress() terjadi ketika pengguna menekan dan melepaskan kunci ANSI (ANSI adalah karakter ASCII yang terlihat 1-127).
tata bahasa
deskripsi sebagian
objek adalah ekspresi objek yang nilainya "diterapkan pada" objek dalam daftar.
indeks adalah bilangan bulat yang secara unik mengidentifikasi kontrol dalam array kontrol (hanya tersedia untuk array kontrol).
keyascii adalah bilangan bulat yang mengembalikan kode kunci numerik ANSI standar. Keyascii meneruskan suatu objek dengan referensi, memungkinkan perubahan pada objek tersebut.
Kirim karakter yang berbeda. Mengubah keyascii ke 0 akan membatalkan penekanan tombol sehingga objek tidak menerima karakter.
menjelaskan
Objek dengan fokus menerima peristiwa ini. Formulir bisa menerima kejadian ini hanya jika properti KeyPreview diatur ke True. Peristiwa KeyPress dapat mereferensikan karakter keyboard apa pun yang dapat dicetak, karakter dari alfabet standar, atau salah satu dari beberapa karakter khusus yang dikombinasikan dengan tombol CTRL, dan tombol ENTER atau BACKSPACE. Prosedur kejadian KeyPress() berguna ketika mencegat penekanan tombol yang dimasukkan dalam kontrol TextBox atau ComboBox. Itu dapat langsung menguji validitas penekanan tombol atau memformat karakter saat dimasukkan. Mengubah nilai parameter keyascii akan mengubah karakter yang ditampilkan.
Anda dapat menggunakan ekspresi berikut untuk mengonversi parameter keyascii menjadi karakter:
menjelaskan
Untuk kedua peristiwa tersebut, objek yang difokuskan menerima semua penekanan tombol. Formulir hanya bisa mendapatkan fokus jika tidak memiliki kontrol yang terlihat dan valid. Meskipun peristiwa KeyDown() dan KeyUp() dapat diterapkan pada sebagian besar tombol, peristiwa tersebut paling sering diterapkan pada: tombol karakter tambahan seperti tombol fungsi, tombol navigasi, tombol pengubah keyboard, dan kombinasi tombol, yang membedakan papan tombol numerik dari tombol angka biasa; ketika Anda perlu merespons penekanan dan pelepasan tombol, Anda dapat menggunakan prosedur acara KeyDown dan KeyUp.
Peristiwa KeyDown dan KeyUp tidak dapat direferensikan dalam situasi berikut: formulir memiliki kontrol CommandButton dan kunci ENTER ketika properti Default diatur ke True. Formulir memiliki kontrol CommandButton, dan ketika properti Batal diatur ke True, kunci ESC, kunci TAB, KeyDown, dan KeyUp menggunakan dua parameter untuk menafsirkan bentuk huruf besar dan kecil dari setiap karakter: kode kunci - menampilkan kunci fisik (ganti A dan a Mengembalikan sebagai kunci yang sama) dan shift-menampilkan status tombol shift+key dan mengembalikan salah satu dari A atau a.
Jika Anda perlu menguji parameter shift, Anda dapat menggunakan konstanta shift yang ditentukan dalam parameter. Konstanta ini memiliki nilai sebagai berikut:
Deskripsi nilai konstan
vbShiftMask 1 bit kunci HIFT
tameng.
VbCtrlMask 2 tombol CTRL
topeng kecil.
VbAltMask 4 bit kunci ALT
tameng.
Konstanta ini bertindak sebagai bit mask, yang dapat digunakan untuk menguji kombinasi tombol apa pun.
Catatan: Jika properti KeyPreview diatur ke True, formulir menerima kejadian ini sebelum kontrol pada formulir. Anda dapat menggunakan properti KeyPreview untuk membuat rutinitas penanganan keyboard global.
Dengan pengetahuan di atas, kita dapat membuat program yang sempurna dengan tombol shortcut. Misalnya, dalam sebuah program kita perlu menggunakan Ctrl+S untuk menyimpan, Shift untuk meminimalkan, Alt+X dan ESC untuk keluar:
Pertama jalankan VB dan pilih file EXE baru, tarik TextBox pada formulir Form1, dan atur properti KeyPreview dari Form1 ke True, klik dua kali Form1, pilih acara KeyPress pada Formulir, dan masukkan kode berikut: