На событие нажатия клавиши влияют кнопки
-
03-07-2019 - |
Вопрос
Я новичок здесь, и у меня есть небольшие проблемы с приложением C #. Я хочу захватить событие нажатия клавиш. Сначала это не было проблемой, но после того, как я добавил несколько кнопок в форму, событие нажатия клавиши формы игнорирует клавиши со стрелками и перемещает фокус с одной кнопки на другую (работает событие повышения) Есть ли способ остановить это и заставить их делать что-то еще, когда я держу клавиши со стрелками?
Решение
Установите 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);
}
Другие советы
Если вы не хотите, чтобы для элементов управления выполнялась обычная функция нажатия клавиши, вам нужно будет установить событие нажатия клавиши для каждого элемента управления и установить атрибут handled для аргументов события, чтобы он был истинным, чтобы он не всплывал до встроенной функциональности управления.