Формы: как реализовать условную вкладку-нажатие клавиши между 2 элементами управления

У меня есть 2 элемента управления (control1, control2; поля со списком), где второе поле со списком зависит от значения, содержащегося в первом.

Правила
Для набора заданных значений в control1; control2 не включен.
Для набора других значений в control1; control2 включен.

Я пытаюсь реализовать это поведение:
С фокусом на control1, когда пользователь нажимает вкладку, мы оцениваем, должен ли control2 быть включен или отключен, если control2 включен, он получает фокус, если control2 не включен, control3 получает фокус.

Я пытался использовать различные события на control1 и control2, но, кажется, всегда пропускает удар… с помощью control1_Exit я, кажется, не в состоянии предотвратить его от прыжков в control3, даже если control2 должен быть включен (я пытался заставить фокус control2, но курсор приземляется на control3 в любом случае, кажется, что при срабатывании выхода курсор уже в пути к control3).

Я чешу голову с этой проблемой в течение нескольких часов, хотя это должно быть простым, и поиск SE или веб, кажется, не приводит к решению… Любая помощь будет оценена.

Спасибо заранее
Крис

1 ответ

  1. Предлагаю установить control2.Enabledв On Changeслучае control1. Плюс onForm_Current, чтобы он был установлен правильно для существующих данных.

    Затем просто установите порядок табуляции так, чтобы control2 был после control1, и вам не нужен код для фокуса или выхода. Если control2 включен, он получает вкладку focus on, если нет, то не будет.