Если у вас много элементов управления в форме, есть вероятность, что они организованы с контейнерами, такими как панели и групповые блоки. При настройке порядка вкладок вы также должны учитывать порядок контейнеров. Несоответствие между порядками табуляции в контейнерах может объяснить странные скачки. Это может произойти, особенно если два или более элемента управления / контейнера имеют одинаковое значение порядка табуляции, что делает процесс табуляции произвольным.
Идея решения: Конечно, обновление и исправление порядка вкладок - медленная, подверженная ошибкам работа. Возможно, вам следует написать подпрограмму, которая выполняет итерацию по контейнерам формы и рекурсивно контролирует и правильно присваивает значения порядка табуляции. Вы бы установили порядок табуляции, сравнивая точку расположения каждого элемента управления контейнера, где верхняя и левая крайние точки являются «нижним» рангом, а нижний, самый правый компонент - «самым высоким». Это, конечно, потребует специальной сортировки alg. И если вы посмотрите вокруг, что-то вроде этого уже может быть там.
Решение Идея 2: Рефакторинг! Разделяй и властвуй. Это займет некоторое время, но если вы переместите компоненты пользовательского интерфейса в отдельные, логически организованные пользовательские элементы управления, вы получите более жесткую базу кода. Вы также обнаружите много ошибок!