【问题标题】:What is the main difference between ReadOnly and Enabled?ReadOnly 和 Enabled 之间的主要区别是什么?
【发布时间】:2011-03-06 13:53:13
【问题描述】:

Windows Forms控件中,有两个属性:ReadOnlyEnabled

这两个属性有什么区别?我觉得他们的行为方式相同。

【问题讨论】:

    标签: c# winforms controls


    【解决方案1】:

    正如它在以下论坛帖子中所说:

    在 TextBox 的上下文中,只读 允许用户将焦点设置为和 选择并复制文本但不是 修改它。禁用的文本框不会 允许任何交互。

    当您有数据时使用 ReadOnly 您希望用户查看和复制,但是 不修改。使用禁用的文本框, 当您显示的数据是 不适用于当前 对话框或窗口的状态。

    取自:MSDN Forums

    【讨论】:

    • 你有下面的答案,我只会补充一点,你总是可以设置disabled,但并不是所有的控件都有readonly标签,这是一个遗憾。我建议您不要将它们混合在一个页面上(没有充分理由),因为这可能会使用户感到困惑。
    【解决方案2】:

    ReadOnly 我通常与TextBox 或其他包含文本的控件相关联;它规定用户是否可以修改控件显示的文本。不过,用户仍然可以选择文本(例如,将其复制并粘贴到另一个程序中)。

    Enabled 基本上控制是否可以与控件进行任何用户交互。例如 ButtonEnabled == false 不能被点击; CheckBoxEnabled == false 不能切换,等等。请注意,TextBoxEnabled == false 也不能选择其文本(这将是用户交互)。

    此外,带有Enabled == false 的控件不会引发与用户交互相关的事件,例如Click

    【讨论】:

      【解决方案3】:

      Enabled 指定是否允许用户交互。如果某个控件被禁用,那么它将不会生成任何 UI 事件。

      ReadOnly 确定用户是否可以编辑控件的内容。例如,ReadOnly TextBox 无法编辑,但您仍然可以单击它,选择其中包含的文本等。

      【讨论】:

      • 至少有 rad 控件,它还可以让您粘贴到其中!
      【解决方案4】:

      如果您以带有滚动条的文本框为例,ReadOnly 不允许用户编辑文本,但滚动条仍然处于活动状态(想想安装程序中的许可证框)。 Enabled = false 将导致整个控件禁用,而不仅仅是文本编辑区域。

      【讨论】:

        【解决方案5】:

        某些控件(例如按钮)只能启用或禁用。禁用的控件将给出一个视觉指示,表明它现在无法与之交互(通常通过变灰/淡出)。其他也可以是只读的,因为它们可以以某种方式进行交互但不能编辑。例如,上下控件通常是这样的,这意味着您可以按下按钮来更改值,但不能通过正常输入来编辑它。 (也可能有一些您永远无法与之交互但仍然可以有效禁用的控件;标签仍然可以灰显,作为指示 GUI 的整个区域现在不可用的一部分,这是一个更令人愉悦的视觉效果,而不仅仅是更改交互式控件。)

        事实上,禁用意味着控件也是只读的。我见过一些情况并非如此,而且对我来说,这总是比其他任何事情都更像是一个错误。最好将状态视为代表三态值,其中一种状态不用于某些控件。

        【讨论】:

          【解决方案6】:

          此外,我读到here,如果文本框标记为 Enabled="false",则其值不会在回发时保留在 Viewstate 中。

          【讨论】:

          • 问题是关于 WinForms,而不是 WebForms
          【解决方案7】:

          不要忘记,视障人士的屏幕阅读器无法阅读禁用文本框中的文本,因为它无法获得焦点。对于 ADA 合规性,请使用 ReadOnly

          【讨论】:

            猜你喜欢
            • 2015-08-22
            • 2015-08-06
            • 2013-12-23
            • 2017-04-28
            • 2011-04-14
            • 2010-09-17
            • 2021-11-30
            相关资源
            最近更新 更多