2009-01-29 1 views
5

Это довольно распространенная форма с флажком с указанием «Использовать foo», за которым следует текстовое поле, в котором пользователь может ввести «значение foo», которое он хочет использовать. Конечно, это текстовое поле полезно только если «Использовать Foo» проверяетсяКак вы относитесь к временным бесполезным элементам управления в Winforms (скрывая или отключая)?

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

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

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

+0

Хороший вопрос. Меня тоже интересует общий консенсус. – JMD

ответ

12

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

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

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

+0

+1 (за исключением того, что у меня нет голосов, я думаю, мне придется «вернуться завтра») – Rob

+0

Кроме того, я думаю, вы можете изменить настройку всплывающей подсказки для отображения, даже если элемент управления отключен. Таким образом, вы можете включить подсказку, почему элемент управления отключен и/или как его снова включить. –

0

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

1

Отключение текстового поля

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

2

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

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

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

+0

Кроме того, значение по умолчанию, отображаемое в отключенном текстовом поле, может предоставить дополнительную информацию о том, что именно подразумевается под «Foo» (например, foo _number_). Гораздо больше на http://www.zuschlogin.com/?p=40. –

0

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

1

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

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

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

0

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