Почему метки и фрейм имеют свойство «Tab Index» в VB6?

#vb6 #tabindex #tab-ordering

#vb6 #tabindex #порядок табуляции

Вопрос:

Кто-нибудь знает, почему метки и фреймы (и, возможно, другие элементы управления) имеют TabIndex свойство в VB6? Есть ли для этого какое-то применение; какая-то особенность программирования с графическим интерфейсом, которую я должен включить в свои приложения (о которой я в блаженном неведении)?

Ответ №1:

Чтобы подтвердить то, что сказал Коди в комментариях. В вводе вручную VB6 для TabIndex говорится:

Элементы управления, которые не могут получить фокус (элементы управления Frame и Label), остаются в порядке табуляции, но пропускаются во время табуляции.

но

Если вы нажимаете клавишу доступа для элемента управления Frame или Label, фокус перемещается к следующему элементу управления в порядке табуляции, который может получить фокус.

Ответ №2:

TabIndex это свойство используется для определения последовательности сфокусированных элементов управления, когда пользователь нажимает клавишу TAB.
Если управление с помощью TabIndex=5 сфокусировано и пользователь нажимает TAB, управление с помощью TabIndex=6 будет сфокусировано.

Комментарии:

1. Ну, да, но метки и фреймы не попадают в фокус (или попадают при некоторых обстоятельствах?); в этом загадка.

2. @Brian Hooper: насколько я помню о VB6, метки фокусируются, но вы можете указать им переместить фокус на другой элемент управления (например, текстовое поле или ListView)

3. @Brian: Метки и фреймы не попадают в фокус. Они передают фокус элементу управления, сразу следующему за ними в порядке табуляции. Это полезно для установки фокуса на текстовое поле или поле со списком, например, с использованием комбинации ALT букв, поскольку у них нет собственного текста для отображения мнемоники.

4. Windows делает это повсеместно, и это очень важно для обеспечения доступности для пользователей, использующих только клавиатуру. Проверьте некоторые панели управления, удерживая нажатой клавишу ALT, чтобы отображалась мнемоника.

5. @Marco: Без проблем. Это точно такая же сделка в любом другом приложении с графическим интерфейсом Windows, от простого Win32 API до VB 6, .NET WinForms и выше. Порядок табуляции чрезвычайно важен для правильного.