【问题标题】:How to enable copy when textbox.enabled is false?当 textbox.enabled 为 false 时如何启用复制?
【发布时间】:2019-07-25 17:29:37
【问题描述】:

我有一个TextBox 控件并希望能够复制TextBox 的内容。

TextBox 的属性如下所示;

textBox1.Enabled = false;
textBox1.ReadOnly = false;

即使 ReadOnly 属性为 false,我也无法复制 textBox1 的内容。

有什么建议吗?

【问题讨论】:

  • 您是否尝试将enabled 设置为true
  • 我错过了一点,如果我将 ReadOnly 设置为 true,那么 Enabled 属性是否重要?
  • @MehmetInce:- 我已经在我的回答中提到了这一点!
  • 感谢您的所有回答。 @Rahul 特别感谢您的回答。

标签: c# winforms


【解决方案1】:

如果您希望用户允许复制粘贴,您可以试试这个:

textBox1.ReadOnly = true;

来自MSDN forum

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

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

【讨论】:

  • @MehmetInce:- 还要补充一点:- 当您将控件设置为 禁用 时,它不能被编辑,并且在提交表单时其内容被排除在外。当您将控件设置为只读时,它无法被编辑,但其内容(如果有)仍包含在提交中。
  • 只读文本框+复制到剪贴板的几个提示: 1:您还可以覆盖背景颜色以使其再次变白/等。 2:我还建议在“onclick”事件中全选。所以复制的数据被突出显示。查看stackoverflow.com/a/2151429/503621
【解决方案2】:

如果你想支持复制/粘贴,你应该将你的文本框设置为ReadOnly = true 而不是Enabled = false

【讨论】:

    【解决方案3】:
    textBox1.ReadOnly = true;
    

    您甚至可以使用复制按钮和代码如下:

    System.Windows.Forms.Clipboard.SetText(textBox1.Text);
    

    【讨论】:

      【解决方案4】:
       <input type="text" id="txtMobileNo" runat="server" onkeypress="return onlyNos(event,this);" class="form-control input-sm m-bot15" readonly="readonly" maxlength="10" style="font-weight: bold; background-color: #ecf9ec" tabindex="0" />
      

      在文本框代码中使用 readonly="readonly"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-12
        • 1970-01-01
        • 1970-01-01
        • 2017-01-24
        • 2021-02-02
        • 2018-03-20
        • 2022-06-25
        • 2016-03-29
        相关资源
        最近更新 更多