Эффективный способ (на вкладке) вкладки через элементы управления автоматически страницы через TabControl.tabs - PullRequest
1 голос
/ 14 января 2011

Я пытался отредактировать это, чтобы различать «вкладки» на вкладке «TabControl» и «вкладки» через элементы управления с помощью клавиши «Tab», но я просто собираюсь пролистать и надеюсь, что смысл понятен ... .

У меня есть проект c # с интерфейсом, показывающим tabcontrol. На каждой вкладке находятся 3 вкладки (PersonalInformation, ContactDetails, AdditionalNotes) и соответствующие элементы управления.

Большинству наших пользователей легче ориентироваться в интерфейсах, используя только клавиатуру (например, сочетания клавиш и переходы между элементами управления для навигации). Я включил слушателей клавиатуры для различных сочетаний клавиш. Например, PageUp и PageDown позволят пользователям просматривать различные вкладки.

Однако эти пользователи следуют тому же шаблону для ввода информации: как только они вкладывают вкладки через элементы управления вкладки PersonalInformation (заполняются по мере необходимости) и достигают последнего элемента управления на вкладке, они хотят «продолжать вкладку». Как в случае: когда последний элемент управления сфокусирован на TabControl.Page1, нажатие пользователем вкладки переместит фокус на первый элемент управления TabControl.Page2. Когда последний элемент управления сфокусирован на TabControl.Page2, пользователь, нажимающий вкладку, переместит фокус на TabControl.Page3.

Таким образом, информация группируется и содержится вместе, и пользователи могут просто продолжать набирать текст и вкладки для ввода всей информации в форму, и все это без необходимости использовать клавиатуру.

Итак, настоящий вопрос заключается в том, чтобы сделать это эффективно: Я не могу просто обработать OnLeave последнего элемента управления: пользователь (на последнем элементе управления), выбирающий более ранний элемент управления (или даже Shift-Tab), также вызовет событие.

Другая проблема заключается в обслуживании: добавление другого элемента управления внизу вкладки может привести к потере цели, если сопровождающий забудет / не знает, что эта функция «переместить фокус на следующую вкладку». Возможно, добавление последнего элемента управления в форму?

1 Ответ

0 голосов
/ 19 января 2011

Я переопределил метод ProcessDialogKey, чтобы обрабатывать нажатия клавиш Tab (и Shift + Tab), сдвигая tabPages и фокусироваться на соответствующих элементах управления.С функциональной точки зрения, это будет работать.

Проблемы с техническим обслуживанием

Этот конкретный интерфейс не часто меняется, и все еще проводится достаточное количество юзабилити-тестирования для определениячто лучше всего работает до его выпуска (так что мы можем в конечном итоге вернуться).

Плохо то, что смещение фокуса довольно жестко запрограммировано.Я не вижу какого-либо простого способа справиться с этим в общем.

К счастью, обслуживание должно быть низким, так как есть только 3 вкладки.Бизнес-логика полностью инкапсулирована в другом месте, поэтому нет риска для бизнес-функций.Код содержится в соответствующих регионах, поэтому его легко обнаружить.Также довольно быстро можно обнаружить, что что-то не так, поскольку пользователи являются «энтузиастами клавиатуры» и просматривают все во время ввода данных.

Любые комментарии / предложения по-прежнему приветствуются.

...