C#学习教程:在richtextbox中高亮所有搜索到的词这是我的笔,他的笔很漂亮。现在我搜索单词“is”然后输出如下。所有“是”都应该突出显示。此致,Khilen关于什么:staticclassUtility{publicstaticvoidHighlightText(thisRichTextBoxmyRtb,stringword,Colorcolor){if(word==string.Empty)return;ints_start=myRtb.SelectionStart,startIndex=0,索引;while((index=myRtb.Text.IndexOf(word,startIndex))!=-1){myRtb.Select(index,word.Length);myRtb.SelectionColor=颜色;startIndex=index+word.Length;我的Rtb。选择开始=s_start;myRtb.SelectionLength=0;myRtb.SelectionColor=Color.Black;}}使用这个方法,可以同时高亮显示多个单词。或者您可以轻松跳过foreach部分并使用它来突出显示单词。privatevoidHighlightWords(string[]words){foreach(stringwordinwords){intstartIndex=0;while(startIndex看起来会这样。http://www.dotnetcurry.com/ShowArticle.aspx?ID=146intstart=0;intindexOfSearchText=0;privatevoidbtnFind_Click(objectsender,EventArgse){intstartindex=0;如果(txtSearch.Text.Length>0)startindex=FindMyText(txtSearch.Text.Trim(),开始,rtb.Text.Length);//如果在RichTextBox中找到字符串,则突出显示它if(startindex>=0){//将突出显示颜色设置为红色rtb.SelectionColor=Color.Red;//找到结束索引。结束索引=文本框中的字符数intendindex=txtSearch.Text.Length;//突出显示搜索字符串rtb.Select(startindex,endindex);//在最后一个搜索字符串的位置之后标记开始位置start=startindex+endindex;}}publicintFindMyText(stringtxtToSearch,intsearchStart,intsearchEnd){//取消选择之前搜索的字符串if(searchStart>0&&searchEnd>0&&indexOfSearchText>=0){rtb.Undo();}//默认将返回值设置为-1。intretVal=-1;//应指定有效的起始索引。//ifindexOfSearchText=-1,搜索结束if(searchStart>=0&&indexOfSearchText>=0){//一个有效的结束索引if(searchEnd>searchStart||searchEnd==-1){//找到位置RichTextBox中的搜索字符串indexOfSearchText=rtb.查找(txtToSearch、searchStart、searchEnd、RichTextBoxFinds.None);//判断是否在richTextBox1中找到了文本。if(indexOfSearchText!=-1){//返回指定搜索文本的索引。retVal=indexOfSearchText;}}}返回retVal;}//当用户更改搜索字符串时重置富文本框privatevoidtextBox1_TextChanged(objectsender,EventArgse){start=0;indexOfSearchText=0;}这里有一篇文章欣赏http://www.dotnetcurry.com/ShowArticle.aspx?ID=146这样会同时显示所有的搜索条件使用:1个文本框(输入文字)和1个按钮(运行搜索).在文本框中输入搜索条件,然后按搜索按钮。//在搜索按钮点击时:RichTextBox("rtb")将显示文档中的所有单词privatevoidbtn_Search_Click(objectsender,EventArgse){ritchtextbox不为空;突出显示搜索条件intindex=0;Stringtemp=rtb.Text;rtb.Text="";rtb.Text=temp;while(index}我同意上面AlexJolig的解决方案。但我发现的一件事是最后一行,startIndex+=wordStartIndex+word.Length;不应该有+=,而是startIndex=wordStartIndex+word。长度;这将起作用。如果只想匹配整个单词可以使用这个,注意这里忽略大小写,|sb表示复数高亮,例如Cat匹配cats但不匹配caterpillers:如果你想了解更多关于C#学习教程,我希望你会更加关注单词分享的全部内容。---publicstaticvoidHighlightText(RichTextBoxmyRtb,stringword,Colorcolor){if(word==string.Empty)return;varreg=newRegex(@"b"+word+@"(b|sb)",RegexOptions.IgnoreCase);foreach(在reg.Matches(myRtb.Text)中匹配匹配){myRtb.Select(match.Index,match.Length);myRtb.SelectionColor=颜色;}myRtb.SelectionLength=0;myRtb.SelectionColor=Color.Black;}privatevoidbutton3_Click(objectsender,EventArgse){if(textBox1.Text!=""){for(inti=0;i本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处:
