Может быть, вам нужно найти и зарегистрировать его для дочерних элементов управления каждого элемента управления, с которым вы сталкиваетесь, вниз по дереву?
Первое, что я хотел бы сделать, если у меня возникнет эта проблема, - {} обойти регистрацию ивывод "сейчас регистрируется" + имя элемента управления.Таким образом, вы можете смотреть и видеть, сколько элементов управления зарегистрировано и каковы они.Может быть, это просто основная панель, а субконтроли обрабатывают клавишу вниз?У меня также были проблемы с обработчиками событий нажатия клавиш при работе в dockmanager, dockmanager обрабатывал клавиатуру на другом уровне и направлял событие на определенный дочерний элемент управления, который, как он думал, должен его получить.
Если выдо сих пор не понимаю, следующая вещь, которую я бы сделал, это подключить события формы, или, может быть, даже отслеживать события сообщения WM_ windows.В какой-то момент WM_ преобразуется в событие .NET с помощью кода, и это может быть реализовано непредвиденными способами и взломано сторонними элементами управления и т. Д. Операционная система должна направлять события WM_ в ваш процесс.так что следите за ними с помощью обработчиков сквозных событий, которые регистрируют, что происходит.
Я точно забыл, как это работает, но при обработке события, такого как нажатие клавиши, вы можете либо вернуть bool, либо установить флаг для событияговоря, что вы обработали это, и в реализации dockmanager я видел, что если вы сказали, что обрабатываете это, цикл, который передавал событие дочерним элементам управления, остановился бы, заставляя задуматься, что только одно действие должно быть инициировано событием клавиатуры.