c# - 读取richtextbox中的特定行

时间:2016-04-14 01:48:46

标签: c# winforms richtextbox

所以我这里有这个代码

int pos = richTextBox1.Find("someText", RichTextBoxFinds.MatchCase);
if (pos != -1)
{
    int line = richTextBox1.GetLineFromCharIndex(pos);
    string lineString = line.ToString();
    string inside = string.Format(lineString);
    MessageBox.Show(inside);
}

如果你不熟悉,那就是找到特定行的文字。

我想采用那行文字并阅读整行。

例如,如果该行是someText hfdshjslkgjhsdilg

然后我会得到一个消息框说someText hfdshjslkgjhsdilg

3 个答案:

答案 0 :(得分:3)

这是LINQ解决方案:

string line = richTextBox.Lines.FirstOrDefault(l => l.Contains(searchedText));
if (line != null) MessageBox.Show(line);

答案 1 :(得分:3)

要使用RichTextBox方法执行此操作,您可以使用richTextBox1.Lines.ElementAt获取Text

int pos = richTextBox1.Find("someText", RichTextBoxFinds.MatchCase);
if (pos != -1) {
    int line = richTextBox1.GetLineFromCharIndex(pos);
    string lineString = richTextBox1.Lines.ElementAt(line);
    MessageBox.Show(lineString);
}

Lines将返回RichTextBox中的行,而您的int line会告诉您要抓取的行的索引。因此,您只需使用它们即可使用Lines.ElementAt(line)

来抓取您的行

答案 2 :(得分:2)

int pos = richTextBox1.Find("someText", RichTextBoxFinds.MatchCase);
if (pos != -1)
{
    int line = richTextBox1.GetLineFromCharIndex(pos);
    int nextLineStart = richTextBox1.GetFirstCharIndexFromLine(line + 1);
    if (nextLine != -1)
    {
        string lineString = richTextBox1.Text.Substring(pos, nextLineStart - pos);
        MessageBox.Show(lineString);
    }
}