取消选择RichTextBox中的文本

时间:2013-05-05 16:13:39

标签: c# .net winforms

我有一个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可以做到这一点,但这不起作用。还有其他办法吗?

1 个答案:

答案 0 :(得分:6)

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