Я хотел бы контролировать фокус моего приложения winform. Он выполнен из пользовательского списка и нескольких других компонентов. Я хочу, чтобы все манипуляции с клавиатурой управлялись моими обработчиками окон, чтобы избежать определенной обработки управляющих клавиш (например, когда я нажимаю символ, а поле списка сфокусировано, выбирается элемент, начинающийся с буквы-корреспондента, который не является правильным поведением для моего приложения). Как я могу достичь этого?
Убедитесь, что для свойства KeyPreview вашей формы установлено значение true. Затем этот код должен работать для отмены ваших ключевых событий в списке...
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (this.ActiveControl == listBox1)
e.Handled = true;
}
Событие KeyPress может не работать для всех ваших сценариев. В этом случае я бы опробовал событие KeyDown.