2012-02-16 9 views
2

で太字:私はこのコードを使用してeveryline大胆</p> <p>の最初の単語作りたい ...私は私のリッチテキストボックスに取り組んできましたが、私は奇妙な何かに走ったのRichTextBox

 RichTextBox bold = richTextBox1; 
     foreach (string line in bold.Lines) 
     { 
      string name = line.Split(' ')[0]; 
      int srt = bold.Find(name); 
      bold.Select(srt, name.Length); 
      bold.SelectionFont = new Font(bold.Font, FontStyle.Bold); 
     } 

をしかし、何らかの理由でいくつかの行がスキップされます。 私が気づいたことは、行の先頭の単語によって異なります。

例:Nameはスキップされますが、Name1:は問題ありません。ProcessId、VirtualSize、WorkingSetSizeも同じです。それ以上の説明が必要とされて

Example http://i40.tinypic.com/4lov91.png

場合は教えてください。

ラインは、すべてのコンテンツは、リッチテキストボックスに追加された後に呼び出され、すべての最初の単語を太字にする

richTextBox1.Text += "Name: "+ queryObj["Name"] + Environment.NewLine; 

関数のように追加されます。

+0

richtextboxにどのように行を追加しますか? – Tudor

+0

私はすべての最初の単語がa:で終わるのを見ます。 string name = line.Split( ':')[0];を使用してみてください。代わりに? – IUnknown

+0

これが投票された理由は何ですか? – Skami

答えて

9

行...

int srt = bold.Find(name); 

...は、行を開始した単語の最初の発生を見つけることです。太字に設定されていない単語を見ると、リッチテキストボックスの早い方に表示されます。

+0

それは私が自分のことを考えなかったとは信じられませんでした。ありがとうたくさんの男:) int srt = bold.Find(line);を使って修正しました。代わりに。 – Skami

0

私のrichtextboxは、私の太字機能に正しい順序で送信されなかった場合、すべての出現を選択していませんでした。私の修正は、テキスト選択を開始する前にstart(srt)が0より大きいかどうかをチェックすることを含みます。これは次のようになります。

foreach (string line in bold.Lines) 
{ 
    int srt = bold.Find(name); 
    if (srt > 0) 
    { 
     bold.Select(srt, name.Length); 
     bold.SelectionFont = new System.Drawing.Font(bold.Font, FontStyle.Bold); 
    } 
} 

これで、常に最初のオカレンスが選択されます。

PS:namestringであり、boldRichTextBoxです。

関連する問題

 関連する問題