【问题标题】:How can I select all the text within a Windows Forms textbox? [closed]如何选择 Windows 窗体文本框中的所有文本? [关闭]
【发布时间】:2013-08-05 04:44:30
【问题描述】:

我想选择文本框中的所有文本。

我已经用下面的代码试过了:

textBoxResults.SelectionStart = 0;
textBoxResults.SelectionLength = textBoxResults.Text.Length;

来源:我从这里得到了这个代码http://msdn.microsoft.com/en-us/library/vstudio/hk09zy8f(v=vs.100).aspx 但由于某种原因,它似乎不起作用。

【问题讨论】:

  • (...)但它不起作用。(...),如果你写var selectedText = textBoxResults.SelectedText;,你会在selectedText 中得到什么?你是不是在上面的代码后面修改了text属性?
  • 不,这是在以编程方式填充文本框之后。我只想快速突出显示所有内容,这样我就不必滚动浏览大量文本。
  • 里面有多少文字?
  • 什么不起作用?是否仅部分选择了文本?还是根本没有选择?您必须提供有关您的问题的更多详细信息。
  • 在将文本框的 HideSelection 属性设置为 false 之前,我遇到了同样的问题....

标签: c# winforms textbox selectall


【解决方案1】:

您可以为此使用内置方法。

textBoxResults.SelectAll();
textBoxResults.Focus(); //you need to call this to show selection if it doesn't has focus

【讨论】:

  • 这似乎是明智的,但它也不起作用。我添加了 textBoxResults.SelectAll();
  • 我已经测试过了,它工作得非常好。你能展示你是如何实现它的吗?一定是其他原因导致了问题。
  • 遇到问题,在 selectall 调用后调用 textBoxResults.Focus()
  • 或者将HideSelection属性设置为false
  • 我总是一看到我的问题的每一个答案——甚至在我阅读它之前,都会对它进行投票。
【解决方案2】:

您也可以尝试以下可能解决问题的方法:

textBoxResults.SelectAll();

这适用于多行文本框。

【讨论】:

    【解决方案3】:

    此方法使您可以选择控件中的所有文本。

    public void CopyAllMyText()
    {
    // Determine if any text is selected in the TextBox control. 
    if(textBox1.SelectionLength == 0)
       // Select all text in the text box.
       textBox1.SelectAll();
    
    // Copy the contents of the control to the Clipboard.
    textBox1.Copy();
    }
    

    查看此链接了解更多信息。 http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.selectall.aspx

    【讨论】:

    • 为什么我需要检查 selectionlength?我想在此之前选择所有内容。
    • 如果条件可以去掉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 2012-01-23
    相关资源
    最近更新 更多