c# - 读取富文本框中的特定行

c# - Read a specific line in a 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

这是 LINQ 解决方案:

string line = richTextBox.Lines.FirstOrDefault(l => l.Contains(searchedText));
if (line != null) MessageBox.Show(line);
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);
    }
}

要使用 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 会 return 你在 RichTextBox 中的行,你的 int line 会告诉你你想要抓取的行的索引。所以,你只需要使用它们来使用 Lines.ElementAt(line)

来抢你的线