所以我这里有这个代码
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
答案 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);
}
}