В элементах управления Windows Forms существует два свойства: ReadOnly и Enabled.
В чем разница между этими двумя свойствами? Я чувствую, что они ведут себя одинаково.
В элементах управления Windows Forms существует два свойства: ReadOnly и Enabled.
В чем разница между этими двумя свойствами? Я чувствую, что они ведут себя одинаково.
Как говорится на следующем форуме:
В контексте TextBox, только для чтения позволяет пользователю устанавливать фокус и выберите и скопируйте текст, но не измените его. Отключенный TextBox не разрешить любое взаимодействие.
Используйте ReadOnly, когда у вас есть данные, которые вы хотите, чтобы пользователь видел и копировал, но не изменять. Используйте отключенное текстовое поле, когда данные, которые вы показываете, не применяется для текущего состояние диалога или окна.
Взято из: Форумы MSDN
ReadOnly
Я обычно ассоциирую с TextBox
или другим элементом управления, который содержит текст; он определяет, может ли пользователь изменить текст, отображаемый элементом управления. Пользователь все еще может выбирать текст (например, копировать и вставлять его в другую программу).
Enabled
в основном контролирует, возможно ли взаимодействие пользователя с элементом управления. Например, Button
с Enabled == false
не может быть нажата; a CheckBox
с Enabled == false
нельзя переключить и т.д. Обратите внимание, что a TextBox
с Enabled == false
также не может выбрать свой текст (это будет взаимодействие с пользователем).
Кроме того, элементы управления с Enabled == false
не создают событий, связанных с взаимодействием с пользователем, например Click
.
Enabled указывает, разрешено ли взаимодействие с пользователем. Если элемент управления отключен, он не будет генерировать какие-либо события пользовательского интерфейса.
ReadOnly определяет, может ли пользователь редактировать содержимое элемента управления. Например, текстовое поле ReadOnly нельзя редактировать, но вы можете щелкнуть по нему, выбрать текст, содержащийся в нем, и т.д.
Некоторые элементы управления, например, кнопки, могут быть включены или отключены. Отключенное управление даст визуальную индикацию того, что он не может взаимодействовать прямо сейчас (обычно путем седеления/выцветания). Другие также могут быть доступны только для чтения, поскольку они могут каким-то образом взаимодействовать, но не редактироваться. Например, управление вверх-вниз часто происходит так, что означает, что вы можете нажимать кнопки, чтобы изменить значение, но не редактировать его путем обычного ввода. (Также возможно иметь элементы управления, с которыми вы никогда не сможете взаимодействовать, но которые по-прежнему полезны для отключения, ярлык все еще может быть выделен серым цветом как часть указания на то, что вся область графического интерфейса не используется в настоящее время, что является более приятный визуальный эффект, чем просто изменение элементов управления, которые являются интерактивными.)
Практически всегда, когда отключается, подразумевается, что элемент управления также доступен только для чтения. Я видел несколько случаев, когда это было неверно, и это всегда казалось скорее ошибкой, чем чем-либо еще для меня. Лучше рассматривать состояния как представляющие значение трех состояний, когда одно из состояний не используется для некоторых элементов управления.
Если вы берете текстовое поле с полосой прокрутки в качестве примера, ReadOnly не позволяет пользователю редактировать текст, но полоса прокрутки по-прежнему активна (подумайте о лицензиях в программах установки). Enabled = false приведет к отключению всего элемента управления, а не только области редактирования текста.
Кроме того, я читаю здесь, что если текстовое поле отмечено Enabled = "false", его значение не сохраняется в ViewState через постбэки.