0

テキストファイルをWindowsフォームアプリケーションのリッチテキストボックスにインポートした後、検索機能を追加します。複数のSelectionStart値を持つことは可能ですか?SelectionLengthは、同じ単語であることを確認すると同じになります。

        string textfield = TextField.Text;
        string searchword = searchbox.Text;
        int found=0;
        TextField.SelectionLength = searchword.Length;
        TextField.SelectionBackColor = Color.LightBlue;

        for (int y = 0; y < textfield.Length; y++)//Goes through whole string
        {
            if (searchword[0] == textfield[y])//Looks for first character
            {
                for (int x = 0; x < searchword.Length; x++)//Checks if rest of  characters match
                {
                    if (searchword[x] == textfield[y + x])
                    {
                        found++;
                    }
                    else
                        break;
                }
            }

            if (found == searchword.Length)
            {
                TextField.SelectionStart = y;//////Want to have multiple of these
            }
            found=0;
        }
        TextField.Focus();
4

1 に答える 1

0

いいえ、できません。ただし、たとえば、選択したテキストの背景色を変更することはできます。単語を選択することから始めます。次に、これを行います

foreach (Match match in matches) {
    richTextBox.SelectionStart = match.Index;
    richTextBox.SelectionLength = match.Length;
    richTextBox.SelectionBackColor = Colors.Yellow;
}

すべてのマーキングをクリアするには、テキスト全体を選択し、背面の色を白に設定します(それ以外の場合は背面の色を使用していないと仮定します)。

この例では、を使用していると想定していますRegex。あなたは次の単語を見つけるでしょう:

string pattern = String.Format(@"\b{0}\b", Regex.Escape(wordToFind));
MatchCollection matches = Regex.Matches(richTextBox.Text, pattern);
于 2012-09-20T21:44:18.353 に答える