Winform клавиатура управления

2

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

Теги:
winforms
focus
keyboard-events

1 ответ

4
Лучший ответ

Убедитесь, что для свойства KeyPreview вашей формы установлено значение true. Затем этот код должен работать для отмены ваших ключевых событий в списке...

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (this.ActiveControl == listBox1)
        e.Handled = true;
}

Событие KeyPress может не работать для всех ваших сценариев. В этом случае я бы опробовал событие KeyDown.

  • 0
    Будет ли установка e.Handled на true отменить нажатие клавиши?
  • 0
    Да. По сути, вы сообщаете событию, что вы обработали ключевое событие, и вы не хотите, чтобы оно имело с этим дело.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню