На событие нажатия клавиши влияют кнопки - PullRequest
3 голосов
/ 04 мая 2009

Я новичок здесь, и у меня есть небольшие проблемы с приложением C #. Я хочу захватить событие нажатия клавиш. Сначала это не было проблемой, но после того, как я добавил несколько кнопок в форму, событие нажатия клавиши формы игнорирует клавиши со стрелками и перемещает фокус с одной кнопки на другую (работает событие повышения) Есть ли способ остановить это и заставить их делать что-то еще, когда я держу клавиши со стрелками?

Ответы [ 2 ]

5 голосов
/ 04 мая 2009

Установите для свойства KeyPreview в форме значение true. Это позволит форме видеть событие keydown в дополнение к дочерним элементам управления.

Добавьте это в свою форму ...

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);
}
1 голос
/ 04 мая 2009

Если вы не хотите, чтобы для элементов управления выполнялась обычная функция нажатия клавиши, вам нужно будет установить событие нажатия клавиши для каждого элемента управления и установить атрибут handled для аргументов события, чтобы он был истинным, чтобы он не всплывал до встроенной функции управления.

...