ИМХО, большой вопрос, который вам нужно задать, - это основная цель вашей страницы и относительная сложность ваших пользователей. Имеете ли вы дело с клавишами Tab + 10, машинистами, щелкающими мышью + охота-пек, и тем, и другим?
Выбор, который вы делаете, должен учитывать это. Я предполагаю, что благодаря выбору сетки ваши пользователи находятся на шаг впереди снизу и используют навигацию по вкладкам в качестве основного средства навигации по форме, а основное использование - это массовый ввод данных.
Относительно числового ввода:
- Если вы планируете предоставить процедуру преобразования, вам не нужно ограничиваться цифрами.
- В случае, когда пользователь вводит недопустимый ввод (обратите внимание, что некоторые цифры, а не только текст могут быть недействительными ... например, отрицательный возраст), лучше показывать ошибку в строке и сразу.
- Избегайте вращений, особенно если вы имеете дело с числами с десятичными знаками. Спиннеры отвлекают внимание от ввода данных и обеспечивают минимальное значение, если вы не имеете дело с конечным набором дискретных чисел. Если дело обстоит так, Combo / Select может быть лучше (я опишу почему в следующем посте).
Относительно значений перечисления:
- Избегайте всплывающих окон / контекстных меню, таких как чума. Они требуют от пользователя использовать мышь и отвлекать внимание от текущей задачи, буквально, когда вы создаете новое окно. Комбинирование / выбор дает пользователям некоторую степень опережающего ввода и позволяет выбирать клавиатуру с помощью стрелок.
- Поднятая вами проблема со списком (стрелка, делающая текст более трудной для чтения) - это то, что вы можете облегчить с помощью решения для фокусировки, которое вы предоставляете, однако, в целом, вы можете сделать свою сетку более читабельной в целом с большим количеством отступов между строки и столбцы.
Дополнительные комментарии:
- Свободный текст даты с преобразованиями, если это возможно. Если вы не планируете обучать своих пользователей или не решите использовать какую-либо драконовскую систему маскировки (и не менее раздражающую шлепок при неудаче валидации), им следует разрешать вводить даты по своему усмотрению. Предостережение Если вы имеете дело с иностранцами, они вводят месяцы и дни по-разному. СОП в США в мм / дд / гггг, тогда как многие страны предпочитают дд / мм / гггг.
- Если у вас есть большое количество полей, вы можете рассмотреть возможность разделения ввода данных на несколько строк. Плоская сетка из> 10 столбцов довольно сложно понять в одном представлении. Недостатком этого является увеличение вертикальной прокрутки, поэтому вам придется балансировать между важностью использования контекста данных (например, строк выше и строк ниже) при интерпретации текущей строки редактирования данных с одной стороны, и получения всех информация одного ряда (многострочная или H-прокрутка) в другом.
Опять же, однако, определите ЧТО основное использование вашей формы будет, и оптимизировать для этого. Визуализация или анализ данных имеют иные потребности, чем массовый ввод, и удовлетворение пользователей клавиатуры совершенно отличается от пользователей клавиатуры + мыши.
РЕДАКТИРОВАТЬ: Ответы на комментарии
Также я не понимаю, почему удовлетворение
пользователи клавиатуры совершенно разные
чем пользователи клавиатуры + мыши: я думал
что одно решение может / должно
поддержка либо и / или оба.
Это не совсем другое. Думайте об этом как о разнице между «оптимизацией» и «поддержкой» большинства ваших пользователей. Несколько примеров: редакторы кода оптимизированы для пользователей клавиатуры. Между горячими клавишами, сочетаниями клавиш и клавиатурной навигацией пользователю редко требуется использовать мышь. Большинство игр RTS работают с использованием одной руки на мышь, другой на клавиатуре. Обычно они поддерживают исключительно с помощью мыши, но для этого не оптимизированы . С другой стороны, ITunes - это почти исключительно мышь (как и большинство интерфейсов с преобладанием перетаскивания), и использование только клавиатуры практически невозможно.
Вы разрешаете запись и отображаете
ошибка; или предотвратить вход и
отобразить ошибку? Что вы подразумеваете под
показывая это "встроенный", когда это сетка
(клетка, где-то внутри стола)?
Я не уверен, на какой платформе вы строите, но да, я имею в виду где-то внутри таблицы, предпочтительно в строке данных, о которой вы говорите. В ASP.NET GridView допускает TemplateFields, которые позволяют вам встраивать несколько элементов управления в одну и ту же «ячейку». В мире богатых клиентов большинство сторонних компонентов обеспечивают поддержку похожих вещей OOTB (например, IDataErrorInfo), которые выдают ошибки в контексте.
Если альтернативой является размещение всех ошибок над или под вашей сеткой, пользователям будет сложно определить, какая из десятков строк данных содержит ошибку. В качестве примера неоптимальной обработки этого, попробуйте добавить 10 товаров в корзину Amazon, затем измените все суммы на 2, кроме 1 товара, который вы измените на -1. Нажмите update и посмотрите, сможете ли вы легко перейти к строке с ошибками.
Кроме того, «in» разновидность стиля проверки позволяет пользователям вводить данные и отправлять им сообщения, если они неверны без , предотвращая ввод и / или удаление их ввода. StackOverflow делает это во многих местах, о чем легче всего сказать, добавив комментарий. Проверка уведомляет вас о том, что вам нужно как минимум 15 символов, но не удаляет ваш комментарий при уведомлении. Через несколько секунд пользователь мог бы явно узнать и сразу же , что его ввод неверен. Примером этого может быть попытка переименовать файл с обратной косой чертой в Windows. Вы сразу увидите воздушный шар с точными инструкциями.
Ну, Intellisense или автозаполнение
это своего рода всплывающее окно, но это может быть
работает с использованием (не берет фокус
от) клавиатуры.
Если вы можете поддерживать всплывающие окна так же чисто, как Intellisense в Visual Studio, я бы сказал, пойти на это. Мой опыт работы с всплывающими окнами, не связанный с VS, заключается в том, что большинство из них пытаются и терпят неудачу (некоторые, что довольно ужасно, требуя от меня поднять мышь и переориентироваться на правильное место). Еще одна вещь, о которой следует помнить, с Intellisense - это блестящая обработка конца оператора (под этим я подразумеваю взаимодействие с набранными вами словами + оглядка на голову + орфография / прощание букв + обработка табуляции / ввода). Так как я предполагаю, что вы используете вкладку для навигации между полями (обратите внимание, что в VS нет полей), вам нужно будет найти другой способ сообщить приложению, что «я закончил, переходите на авто». -complete / Intellisense, что я только что набрал "
Я думал, что поле со списком
рамка вокруг текста делает текст
сложнее скоростного чтения; может быть
минимальное поле со списком, со стрелкой вниз
но без рамки вокруг поля со списком
(только границы ячеек таблицы)
было бы лучше для клеток, которые не
сосредоточиться: хотя мне интересно, почему
даже стрелка вниз может быть полезна на
клетки, у которых нет фокуса.
Если вы беспокоитесь о кадре ComboBox, я полностью согласен - измените цвет рамки на что-то с более низким контрастом. Любое решение, которое вы предпримете, чтобы минимизировать «хром» элемента управления, когда оно не сфокусировано, очевидно, сделает его более текстовым и (возможно?) Более читабельным.
В любом случае, удачи в дизайне.