Menyelesaikan masalah Peristiwa Kunci Anak Panah
Artikel ini menangani masalah biasa: kekunci anak panah gagal mencetuskan peristiwa KeyDown secara konsisten. Isunya, seperti yang diperhatikan, ialah penekanan kekunci anak panah tunggal kadangkala gagal untuk mendaftarkan acara KeyDown, manakala acara berlaku menyala apabila kekunci anak panah ditekan dengan kekunci pengubah suai (seperti Ctrl).
Tingkah laku terputus-putus ini menunjukkan bahawa peristiwa kekunci anak panah sedang dipintas atau ditindas. Dokumentasi Microsoft pada acara PreviewKeyDown
menyediakan penyelesaian:
Kuncinya ialah mengendalikan acara PreviewKeyDown
. Dalam pengendali acara ini, semak untuk menekan kekunci anak panah. Jika kekunci anak panah dikesan, tetapkan e.IsInputKey = true;
. Ini secara eksplisit memberitahu sistem untuk menganggap tekan kekunci anak panah sebagai kekunci input, memastikan acara KeyDown
menyala dengan pasti.
Pendekatan ini lebih baik daripada menggunakan ProcessCMDKey
, yang direka untuk mengurus pintasan menu dan tidak sesuai untuk senario khusus ini. Dengan menangani secara langsung acara PreviewKeyDown
, kami secara khusus mendayakan gelagat kekunci anak panah yang diingini tanpa kesan sampingan yang tidak diingini.
Atas ialah kandungan terperinci Mengapa Kekunci Anak Panah Saya Tidak Mencetuskan Peristiwa KeyDown, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!