Лучший способ показать экраны пользователю в приложении - PullRequest
1 голос
/ 09 марта 2009

Я занимаюсь разработкой приложения Winforms, которое уже много лет работает в режиме проводника (TreeView слева, экран справа). Я имею в виду, что:

  • Все экраны имеют иерархическую организацию
  • Все узлы TreeView имеют только один связанный экран.
  • Экран активируется при выборе узла в виде дерева.

Одним из преимуществ является то, что у пользователя есть упорядоченная структура, и одно из неудобств заключается в том, что с сотнями экранов пользователь запутывается.

Я вижу другие варианты: используйте классические меню, используйте вкладки или все что угодно.

Какой-нибудь совет для хорошего способа показать много экранов пользователю удобным для пользователя способом?

Обновление: Я изменил "сотни экранов" на "много экранов". Самое главное не показать все вовремя, а то, что пользователь может легко найти то, что ему нужно.

Обновление2: В этом предложении пользователь видит только один экран за раз.

Update3: Я говорю о обработке нескольких экранов, не отображающих несколько экранов. Нет MDI, только один раз .

Ответы [ 5 ]

4 голосов
/ 09 марта 2009

Я использовал другие приложения, похожие на это в прошлом, и главная проблема - попытаться найти нужный экран. Существует два распространенных решения этой проблемы: сочетания клавиш и меню избранного.

С помощью кодов быстрого доступа назначьте короткий код (5 или 6 символов) для каждого экрана. Затем пользователь вводит этот код быстрого доступа в текстовое поле, которое затем переходит на правильный экран. Пользователи создадут собственный список часто используемых кодов.

В меню «Избранное» предоставьте пользователям возможность создавать собственный список меню в структуре, которую они хотят. Им будет легче, если они сами это организуют.

1 голос
/ 09 марта 2009

Рассматривали ли вы ленту Office?

Лента дает вам большую гибкость в том, как показывать и организовать функции, и это очень визуально.

Вот хорошая ссылка о Ленте , а также здесь

Чтобы использовать Ленту, вы должны лицензировать ее у Microsoft. Вы можете сделать это онлайн.

Обеспечение пользователя ударами кетборда, как правило, тоже хорошо.

Я также хотел бы предоставить пользователю поле «автозаполнение» в меню чтобы они могли найти функцию по имени (или ее части) и возможность навигации прямо туда, куда они хотят пойти.

1 голос
/ 09 марта 2009

Зачем вам нужно показывать столько отдельных экранов одновременно? Почему бы просто не показать экран для выбранного узла, зачем все сразу?

Если это все табличные данные, вероятно, слишком много, чтобы их можно было использовать сразу, если это графические данные, не могли бы они быть объединены?

Может быть веская причина, чтобы показывать все данные одновременно, или нет, трудно сказать из того, что указано в вашем вопросе. С учетом вышесказанного, лучше сделать это проще, чем перегружать пользователя. Приложения MDI никогда не бывают просты в использовании.

Вкладки могут работать для небольшого набора элементов, но все еще не являются хорошим интерфейсом для сотен элементов.

Если вы показываете только один элемент за раз из сотен возможных на узлах дерева, тогда это нормально. Один экран, отображаемый за раз, будет контекстуальным для элемента, выбранного при перемещении пользователя по узлам. Подумайте о подходе Outlook, в котором то, что выбрано на левой панели, отображается на правой панели в любой форме, подходящей для отображаемых данных.

0 голосов
/ 10 марта 2009

На самом деле, сложно разбить иерархию для организации большого количества предметов. Я не предпочел бы классическое выпадающее меню для огромного количества окон, потому что было бы еще сложнее отслеживать, где вы находитесь, чем в дереве (например, дерево позволяет вам просматривать несколько веток одновременно). Но вот несколько альтернатив:

Мне непонятно, как у вас получилось так много окон, но, возможно, это происходит из-за сочетания классов, представлений, контента и деталей, или из-за использования ориентированной на задачи структуры пользовательского интерфейса для чего-то слишком сложного (Более подробно об этом можно узнать на http://www.zuschlogin.com/?p=3).. Для сложных приложений вам нужно отдельное главное окно для каждого значимого класса объекта данных (например, счета, сотрудники). Они перечислены в одном меню, и обычно их немного. Достаточно (15 или меньше), чтобы это могло быть одно не каскадное раскрывающееся меню.Контент каждого окна задается отдельным меню, возможно, с помощью пункта меню, который открывает диалоговое окно, которое может включать в себя список (например, диалоговое окно Открыть) или другие элементы управления для запроса / поиска. «Представление» каждого окна (как отображаются объекты данных, например, таблица в сравнении с формой) задается с помощью пунктов меню в меню «Просмотр». в отдельной панели в окне в отношении master-detail, по сути превращая ваши объекты данных в людей для деталей. Одно окно может иметь несколько панелей подробностей, чтобы пользователь мог открывать и закрывать для выбора конкретной детали для отображения. Вкладки могут также использоваться в пределах одной панели, чтобы соответствовать подразделам контента.

Вы говорите, что не важно показывать все параметры окна одновременно, но часто показывая все параметры одновременно, пользователям проще всего найти то, что им нужно. Возможно, вам нужно «домашнее» окно, в котором перечислены все другие окна в организованных, помеченных и разделенных категориях. Это будет проще в использовании, чем дерево, если ваши пользователи выбирают окно, а затем придерживаются его в течение большей части сеанса. Ваше дерево будет лучше, если в течение сеанса будет часто выбираться окно из-за накладных расходов, связанных с переходом к главному окну. Если все окна / опции не умещаются в одном главном окне, тогда показывать только выбранные общие окна для каждой категории в главном окне и предоставить кнопку или ссылку для отображения исчерпывающего списка.

Если вы говорите сотни окон, возможно, вам нужен поиск, возможно, в дополнение к основанному на меню подходу к просмотру окна.

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

0 голосов
/ 09 марта 2009

В целом, я считаю деревья плохой идеей, особенно если ваша «иерархия» имеет небольшую фиксированную глубину.

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

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

...