Как вы справляетесь с временными бесполезными элементами управления в Winforms (скрытие против отключения)? - PullRequest
5 голосов
/ 30 января 2009

Довольно часто иметь форму с флажком «Использовать foo», за которой сразу следует текстовое поле, где пользователь может ввести «значение foo», которое он хочет использовать. Конечно, это текстовое поле полезно, только если установлен флажок «Использовать foo»

Я не знаю лучший способ справиться с этой ситуацией:

  1. Отключить текстовое поле (т.е. textboxfoo.Enabled = false;)
  2. Скрыть это (т.е. textboxfoo.Visible = false;)
  3. Позволяет пользователю вводить значение foo, если он этого хочет, и игнорировать введенное им значение.

Есть ли лучшая практика, которой я могу следовать?

Ответы [ 7 ]

12 голосов
/ 30 января 2009

Текстовое поле должно быть отключено.

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

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

2 голосов
/ 30 января 2009

Отключение текстового поля - лучший вариант в этом случае. Тот факт, что текстовое поле включено / отключено, поскольку флажок установлен / снят, предоставляет полезную обратную связь пользователю: опция use foo ожидает значение foo, а значение foo имеет смысл только в том случае, если выбран параметр use foo.

Сокрытие текстового поля менее удовлетворительно - если флажок не установлен, пользователь не поймет, что включение опции foo позволит им указать значение foo. Представьте, что они думают про себя: «Я бы лучше не выбрал опцию use foo, так как не знаю, какое значение foo будет использовано».

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

1 голос
/ 30 января 2009

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

Но как насчет панели «Дополнительные параметры >>» / «<< Меньше параметров», которая открывается или закрывается, когда «Foo» отмечена / снята? Слишком много работы с точки зрения разработчика и / или слишком много с точки зрения пользователя? Мне лично нравится, как он очищает интерфейс, учитывая, что значения по умолчанию для "Foo" (когда они скрыты) являются подходящими. </p>

(Сказав это, я не использую это везде. Умеренность во всех хороших вещах.)

1 голос
/ 30 января 2009

Отключить текстовое поле

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

0 голосов
/ 30 января 2009

Другой вариант - позволить вводу вводить некоторые данные, если он тоже этого хочет, но автоматически установить флажок foo, если он начинает вводить текстовое поле foo.

0 голосов
/ 30 января 2009

Отключить текстовое поле.
Это дает понять пользователю, что есть опция, которая оказывается недоступной. Когда он скрывается, пользователь может получить ответ «Куда делась моя коробка».

0 голосов
/ 30 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...