1

RichTextBox在它下面有一个搜索框。我将以下代码用于搜索功能:

TabPage activePage = tabs.SelectedTab;
            RichTextBox xmlBox = activePage.Controls.Find("xmlBox", true).Single() as RichTextBox;

xmlBox.DeselectAll();

int index = 0;
int len = xmlBox.TextLength;
int lastIndex = xmlBox.Text.LastIndexOf(tbSearch.Text);

while (index < lastIndex)
{
     xmlBox.Find(tbSearch.Text, index, len, RichTextBoxFinds.WholeWord);
     xmlBox.SelectionBackColor = Color.Yellow;
     index = xmlBox.Text.IndexOf(tbSearch.Text, index) + 1;
}

我想要的是让用户输入单词User。当他键入UI 希望U突出显示所有 s 时,等等,然后如果他删除了rI 只想Use突出显示。我以为这样DeselectAll()可以解决问题,但这不起作用。还有其他方法可以做到这一点吗?

4

1 回答 1

6

DeselectAll() 将简单地取消选择任何当前选择。您的代码实际上更改了先前文本的 BackColor(),因此您必须撤消此操作...可能通过选择所有内容并将其重置为默认颜色,然后再次突出显示新的搜索值。

于 2013-05-05T22:27:05.973 回答