Мое приложение имеет сетку данных, а также многие другие компоненты UIC (кнопки, меню и т. Д.). У меня есть обработчик KeyDown общего этапа, а также специальный для сетки данных. Поведение, которое я пытаюсь реализовать, оказывается более хитрым, чем я думал: в основном, при использовании стрелок на клавиатуре я хотел бы, чтобы решетка данных всегда слышала о таких командах, даже если она не в фокусе.
Возможные подходы, о которых я подумал:
иметь DG всегда в фокусе: кажется глупым / хитрым - в основном нужно помнить, что нужно возвращать DG обратно после любого взаимодействия с остальным пользовательским интерфейсом, который, очевидно, не масштабируется 1007 *
попытаться установить DG в фокусе из обработчика этапа KeyDown: похоже, время не работает, поскольку DG слишком поздно фокусируется, чтобы «услышать» событие.
из обработчика нажатия кнопки stage, проверьте, не находится ли DG в фокусе, и, если да, передайте ему событие. Кажется, в теории это имеет смысл, но я не уверен, как это сделать правильно, поскольку мой обработчик этапа keyDown использует перехват, и, таким образом, кажется, что он перехватывает одно и то же событие снова и снова.
Мне интересно, есть ли что-то намного более простое, что я просто упускаю из-за неопытности. Хотелось бы услышать ваши мысли.
спасибо!
F