如何在选择新发现的文本之前取消选择RichTextBox中的所有内容?

时间:2015-06-08 08:58:37

标签: c# winforms

我有以下功能选择并突出显示文字。

if (startIndex >= 0)
            {

                FormsRtb.SelectionBackColor = Color.CornflowerBlue;
                var selectedTextLength = findContext.TextToFind.Length;

                FormsRtb.Select(startIndex, selectedTextLength);
                _previoslyFoundTextIndex = startIndex + selectedTextLength;
            }

找到EveryTime新文本我需要取消选择并取消高亮显示以前找到的文本。

我在选择新文本之前尝试执行此代码段,但ID没有帮助。

你知道怎么做吗?

    FormsRtb.SelectAll();
    FormsRtb.SelectionBackColor = Color.White;
    FormsRtb.DeselectAll();

1 个答案:

答案 0 :(得分:1)

嗯,我认为你做的选择本身不太正确:在

之后

0)取消突出显示你应该

1)设置SelctionStartSelectionLength然后

2)设置SelectionBackColor

您应该一直更改RTB本身的SelectionBackColor(即不先设置选择)..!

if (startIndex >= 0)
{
    FormsRtb.SelectAll();                    // first we un-highlight
    FormsRtb.SelectionBackColor = Color.White;   // probably FormsRtb.BackColor is better?
    FormsRtb.DeselectAll();

    var selectedTextLength = findContext.TextToFind.Length;

    FormsRtb.Select(startIndex, selectedTextLength);     // now we select..
    FormsRtb.SelectionBackColor = Color.CornflowerBlue;  //..and only then we highlight

    _previoslyFoundTextIndex = startIndex + selectedTextLength;
}