2010-06-21 3 views

ответ

26

Как говорится в следующем сообщении на форуме:

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

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

Взято из: MSDN Forums

+0

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

1

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

ReadOnly определяет, может ли пользователь редактировать содержимое элемента управления. Например, текстовое поле ReadOnly не может быть отредактировано, но вы все равно можете щелкнуть по нему, выбрать текст, содержащийся в нем, и т. Д.

2

ReadOnly Обычно я ассоциируюсь с TextBox или другим элементом управления, который содержит текст; он диктует, может ли пользователь изменить текст, отображаемый элементом управления. Пользователь может по-прежнему выбрать текст, хотя (например, скопировать и вставить его в другую программу).

Enabled в основном контролирует, возможно ли взаимодействие пользователя с элементом управления. Например, нельзя нажать Button с Enabled == false; a CheckBox с Enabled == false не может быть переключен и т. д. Обратите внимание, что TextBox с Enabled == false также не может выбрать свой текст (это будет взаимодействие с пользователем).

Кроме того, элементы управления с Enabled == false не возбуждают события, связанные с взаимодействием с пользователем, такие как Click.

0

Если вы берете текстовое поле с полосой прокрутки в качестве примера, ReadOnly не позволяет пользователю редактировать текст, но полоса прокрутки по-прежнему активна (подумайте о лицензиях в программах установки). Enabled = false приведет к отключению всего элемента управления, а не только области редактирования текста.

1

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

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

0

Кроме того, я прочитал here, что если текстовое поле отмечено Enabled = "false", его значение не сохраняется в Viewstate через postbacks.

+4

Вопрос спрашивает о * WinForms *, а не * WebForms * –

Смежные вопросы