2016-04-14 2 views
2

内の特定の行を読むだから私はあなたが慣れていない場合、それはすべてが特定のテキストのある行何見つけることですC#の - リッチテキストボックス

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ここ

+0

ちょうどメモ:行と段落の違いを理解してください。 – TaW

答えて

3

をhfdshjslkgjhsdilg言うメッセージボックスが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の方法を使用すると、を使用して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)

関連する問題