Я конвертирую приложение VB6 в Winforms, и в VB6 мы часто используем технику, когда определенные текстовые поля становятся видимыми только тогда, когда конкретные значения вводятся в предшествующем текстовом поле.
Проблема заключается в том, что решение сделать текстовое поле видимым принимается только в событии Validating, когда следующий элемент управления, на который следует обратить внимание, уже определен. Когда мы видим зависимое текстовое поле видимым, фокус уже пропущен над элементом управления.
Мы смогли решить эту проблему в VB6, поместив пустой прозрачный пользовательский контроль между двумя текстовыми полями и добавив в TAB в буфере клавиатуры дополнительное событие TAB в пользовательском контроле. Удивительно, но это работает довольно хорошо. Это даже работает, когда вы вернетесь назад. По какой-то причине пользовательский контроль игнорируется, и фокус возвращается к первому текстовому полю. Неудивительно, что я надеюсь, что в Winforms есть лучшее решение.
Кто-нибудь успешно справился с этой ситуацией?