1

私はこのコードを持っています。これは、検索された単語またはフレーズを赤に変えます。

private void rtb_TextChanged(object sender, EventArgs e) {
    String textToFind = textBoxWordOrPhraseToFind.Text;
    String richText = rtb.Text;
    if ((textToFind == "") || (richText == "") || (!(richText.Contains(textToFind)))) {
        return;
    }
    tOut.Select(richText.IndexOf(textToFind), textToFind.Length);
    tOut.SelectionColor = Color.Red;
}

...しかし、その後停止します。最初の単語またはフレーズだけを赤くします。RichTextBox の (一致する) コンテンツ全体に Sammy Hagar 処理を適用したいと考えています。

どうすればいいですか?

4

1 に答える 1

3

RichTextBox は複数選択をサポートしていません。
同じテキストの他の出現を検索することはできますが、複数の選択を保持することはできません。ただし、SelectionBackColor プロパティを変更して、複数選択の動作をシミュレートできます。

検索はこの方法で行うことができます

int pos = 0;
pos = richText.IndexOf(textToFind, 0);
while(pos != -1)
{
    tOut.Select(pos, textToFind.Length); 
    tOut.SelectionBackColor = Color.Red; 
    pos = richText.IndexOf(textToFind, pos + 1);
}
于 2012-05-30T22:23:12.570 に答える