在Windows Forms控件中,有两个属性:ReadOnly和Enabled。
这两个属性有什么区别?我感觉它们的行为方式是一样的。
正如以下论坛帖子所述:
在TextBox的上下文中,readonly允许用户设置焦点、选择和复制文本,但不能修改它。一个disabled的TextBox则不允许任何交互。
当您有数据要让用户查看和复制但不允许修改时,请使用ReadOnly。当您显示的数据对于当前对话框或窗口的状态不适用时,请使用已禁用的文本框。
引自:MSDN论坛
ReadOnly
通常与包含文本的 TextBox
或其他控件相关联,它决定用户是否可以修改控件显示的文本。然而,用户仍然可以选择文本(例如将其复制并粘贴到另一个程序中)。
Enabled
基本上控制着用户是否可以与控件进行任何交互。例如,Enabled == false
的按钮无法被点击;Enabled == false
的复选框无法被切换等等。请注意,Enabled == false
的 TextBox
也不能选择其文本(那将是用户交互)。
此外,Enabled == false
的控件不会引发与用户交互相关的事件,如 Click
。
Enabled用于指定用户是否可以进行交互操作。如果控件被禁用,则不会产生任何UI事件。
ReadOnly用于确定用户是否可以编辑控件的内容。例如,只读的文本框无法编辑,但您仍然可以单击它,选择其中包含的文本等。
有些控件,例如按钮,只能启用或禁用。禁用的控件会给出视觉提示,表明它现在无法与之交互(通常是灰色/淡化)。其他控件也可以是只读的,在某种程度上可以与之交互,但不能编辑。例如,一个上下控件经常是这样的,这意味着您可以按按钮来更改值,但不能通过正常输入进行编辑。(也有可能有一些您永远无法与之交互但仍然可用禁用的控件;标签仍然可以被置为灰色作为指示整个GUI区域当前不可用的一部分,这比仅更改可交互的控件更具视觉效果。)
基本上,禁用意味着控件也是只读的。我见过一些情况,其中这并不是真实的,而且对我来说总是感觉更像是一个错误而不是其他任何事情。最好将状态视为表示三态值的状态,其中一些控件不使用其中的一种状态。
ReadOnly
。
disabled
,但并非所有控件都有readonly
标签,这很遗憾。我建议你不要在同一页上混用它们(除非有充分的理由),因为这可能会让用户感到困惑。 - Mawg says reinstate Monica