从富文本框中读取文本行

本文关键字:读取 取文本 文本 | 更新日期: 2023-09-27 18:07:53

我正在为自己制作一个小应用程序,该应用程序根据输入到表单上的几个富文本框中的文本连接一些语句。

一个文本框可能有10-20行文本,每一行都是它自己单独的条目,所以我需要能够逐行读取文本。

然而,在研究wpf时,我在网上只看到一个关于阅读文本的声明,它是从头到尾阅读框的内容。我想以某种方式循环遍历它或逐行分隔它。

根据MSDN,要从WPF富文本框中提取文本到字符串中,您需要使用:

string StringFromRichTextBox(RichTextBox rtb)
{
    TextRange textRange = new TextRange(
      // TextPointer to the start of content in the RichTextBox.
      rtb.Document.ContentStart, 
      // TextPointer to the end of content in the RichTextBox.
      rtb.Document.ContentEnd
    );
    // The Text property on a TextRange object returns a string 
    // representing the plain text content of the TextRange. 
    return textRange.Text;
}

然而,如果你看一下我的富文本框,你会看到里面的文本是一个值列表,因此,例如,一个框可能看起来像下面:

000423523
324
93489290099
823342342
0003242342
44400298889

我希望能够在RichTextBox中逐行读取这些值,但在WPF中,似乎没有richtextbox1.Lines选项。

从富文本框中读取文本行

要读取WPF RichTextBox的行,可以使用以下代码:

TextRange textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd); 
string[] rtbLines = textRange.Text.Split(Environment.NewLine);
foreach(line in rtbLines)
{
    //do something with line
}
对于这个特定的代码,您将需要使用以下库
using System.Windows.Documents;

您可以使用String.Split()方法通过换行分隔RichTextBox文本,并从结果集中排除空行,例如:

String[] lines = 
        StringFromRichTextBox(rtb).Split(new[]{Environment.NewLine}
                                          , StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
    MessageBox.Show(line);
}

很抱歉这么简单,但是

var lines = richTextBox1.Text.Split(''n');