2016-04-14 32 views
2

所以我有這樣的代碼在這裏C# - 讀特定的線路在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

+0

只是一個注意:確保瞭解線條和段落之間的區別.. – TaW

回答

3

這裏是LINQ的解決方案:

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

這是我的最愛。 – hoodaticus

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); 
    } 
} 
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)