【问题标题】:can't select text in RichTextBox无法在 RichTextBox 中选择文本
【发布时间】:2012-02-13 13:54:31
【问题描述】:

我有一个 RichTextBox 示例:

<RichTextBox Name="RichTextBox1">
    <RichTextBox.Document>
        <FlowDocument>
            <Paragraph>tveg56ybhj6e7</Paragraph>
            <Paragraph>54 h46u7h 468 j58ik9mm</Paragraph>
            <Paragraph>456 h467h 566ybhj6e7</Paragraph>
        </FlowDocument>
    </RichTextBox.Document>
</RichTextBox>

试图选择 RichTextBox 中的所有文本:

    FlowDocument doc = this.RichTextBox1.Document;
    this.RichTextBox1.Selection.Select(doc.ContentStart, doc.ContentEnd);

但似乎没有选择任何内容。我做错了什么?

【问题讨论】:

    标签: .net wpf richtextbox selection


    【解决方案1】:

    这可能是因为当您使用FlowDocument 时,您应该使用TextPointer.GetPointerContext() 方法检查指针上下文。

    您可以尝试使用这里建议的方法:Select Range of Text in WPF RichTextBox (FlowDocument) Programmatically。答案是用 VB.NET 编写的,但是,提出问题的人是用 C# 编写的。

    如果您在使用此解决方案时遇到任何问题,请告诉我。

    【讨论】:

      【解决方案2】:

      事实上它是有效的,但你看不到选择,因为你只是失去了焦点。 现在焦点在按钮上

      尝试在后面添加这一行:

      this.RichTextBox1.Focus();
      

      【讨论】:

      • 然后全选就像 RichTextBox1.SelectAll(); 一样简单
      【解决方案3】:

      您可以通过以下方式简单地选择富文本框中的所有文本 富文本框名称.Select(); 然后放置在剪贴板中,您可以使用 富文本框名称.Copy(); 通过编码,您可以使用此命令获取富文本框中的所有文本

      string myText = new TextRange(richtextboxName.Document.ContentStart,        richtextboxName.Document.ContentEnd).Text;
      

      【讨论】:

        【解决方案4】:
        richTextBox.IsInactiveSelectionHighlightEnabled = true;
        

        【讨论】:

          猜你喜欢
          • 2014-11-02
          • 2010-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-23
          • 1970-01-01
          相关资源
          最近更新 更多