我有一个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
。当他键入U
我想要突出显示所有U
等等,然后如果他删除r
我只想{}}突出显示。我以为Use
可以做到这一点,但这不起作用。还有其他办法吗?
答案 0 :(得分:6)
DeselectAll()将取消选择任何当前选择。您的代码实际上更改了以前文本的BackColor(),因此您必须撤消此操作...可能通过选择所有内容并将其重置为默认颜色再重新突出显示新搜索值。