【发布时间】:2011-03-06 13:53:13
【问题描述】:
在Windows Forms控件中,有两个属性:ReadOnly和Enabled。
这两个属性有什么区别?我觉得他们的行为方式相同。
【问题讨论】:
在Windows Forms控件中,有两个属性:ReadOnly和Enabled。
这两个属性有什么区别?我觉得他们的行为方式相同。
【问题讨论】:
正如它在以下论坛帖子中所说:
在 TextBox 的上下文中,只读 允许用户将焦点设置为和 选择并复制文本但不是 修改它。禁用的文本框不会 允许任何交互。
当您有数据时使用 ReadOnly 您希望用户查看和复制,但是 不修改。使用禁用的文本框, 当您显示的数据是 不适用于当前 对话框或窗口的状态。
取自:MSDN Forums
【讨论】:
disabled,但并不是所有的控件都有readonly标签,这是一个遗憾。我建议您不要将它们混合在一个页面上(没有充分理由),因为这可能会使用户感到困惑。
ReadOnly 我通常与TextBox 或其他包含文本的控件相关联;它规定用户是否可以修改控件显示的文本。不过,用户仍然可以选择文本(例如,将其复制并粘贴到另一个程序中)。
Enabled 基本上控制是否可以与控件进行任何用户交互。例如 Button 和 Enabled == false 不能被点击; CheckBox 和 Enabled == false 不能切换,等等。请注意,TextBox 和 Enabled == false 也不能选择其文本(这将是用户交互)。
此外,带有Enabled == false 的控件不会引发与用户交互相关的事件,例如Click。
【讨论】:
Enabled 指定是否允许用户交互。如果某个控件被禁用,那么它将不会生成任何 UI 事件。
ReadOnly 确定用户是否可以编辑控件的内容。例如,ReadOnly TextBox 无法编辑,但您仍然可以单击它,选择其中包含的文本等。
【讨论】:
如果您以带有滚动条的文本框为例,ReadOnly 不允许用户编辑文本,但滚动条仍然处于活动状态(想想安装程序中的许可证框)。 Enabled = false 将导致整个控件禁用,而不仅仅是文本编辑区域。
【讨论】:
某些控件(例如按钮)只能启用或禁用。禁用的控件将给出一个视觉指示,表明它现在无法与之交互(通常通过变灰/淡出)。其他也可以是只读的,因为它们可以以某种方式进行交互但不能编辑。例如,上下控件通常是这样的,这意味着您可以按下按钮来更改值,但不能通过正常输入来编辑它。 (也可能有一些您永远无法与之交互但仍然可以有效禁用的控件;标签仍然可以灰显,作为指示 GUI 的整个区域现在不可用的一部分,这是一个更令人愉悦的视觉效果,而不仅仅是更改交互式控件。)
事实上,禁用意味着控件也是只读的。我见过一些情况并非如此,而且对我来说,这总是比其他任何事情都更像是一个错误。最好将状态视为代表三态值,其中一种状态不用于某些控件。
【讨论】:
此外,我读到here,如果文本框标记为 Enabled="false",则其值不会在回发时保留在 Viewstate 中。
【讨论】:
不要忘记,视障人士的屏幕阅读器无法阅读禁用文本框中的文本,因为它无法获得焦点。对于 ADA 合规性,请使用 ReadOnly。
【讨论】: