Peristiwa key down dipengaruhi oleh tombol

Saya baru di sini dan saya punya sedikit masalah dengan aplikasi C#. Saya ingin mengabadikan acara key down. Ini bukan masalah pada awalnya tapi setelah saya menambahkan beberapa tombol ke formulir, acara tombol turun formulir mengabaikan tombol panah dan memindahkan fokus dari satu tombol ke tombol berikutnya. (Acara tombol naik berfungsi) Apakah ada a cara untuk menghentikan ini dan membuat mereka melakukan sesuatu yang lain ketika saya menahan tombol panah?


person sheitan    schedule 03.05.2009    source sumber


Jawaban (2)


Setel properti KeyPreview pada Formulir menjadi benar. Hal ini akan memungkinkan formulir untuk melihat peristiwa keydown selain kontrol anak.

Tambahkan ini ke Formulir Anda ...

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData.Equals(Keys.Right))
    {
        MessageBox.Show("Right Key Pressed!");
    }

    return base.ProcessCmdKey(ref msg, keyData);
}
person JP Alioto    schedule 03.05.2009
comment
Saya telah menyetel KeyPreview ke true tetapi masih tidak mendapat respons apa pun saat tombol panah ditekan. Semua kunci lainnya tampaknya berfungsi di acara KeyDown kecuali panah. - person sheitan; 04.05.2009
comment
Peristiwa Form Key* yang normal tidak menangkap tombol kontrol. Anda harus mengganti ProcessCmdKey sebagai gantinya. - person JP Alioto; 04.05.2009
comment
Terima kasih banyak. Ini sangat membantu saya! :) - person sheitan; 04.05.2009

Jika Anda tidak ingin fungsionalitas key down yang normal untuk kontrol, Anda perlu menyetel peristiwa key down di setiap kontrol, dan menyetel atribut yang ditangani agar argumen peristiwa menjadi benar, dengan cara itu tidak akan menggelembung ke atas. fungsionalitas kontrol bawaan.

person Sebastian Bender    schedule 03.05.2009