关于将RichTextBox中匹配字符以红色显示

xminsong 2008-10-31 09:07:33
拟达到效果:将RichTextBox中匹配字符以红色显示

假如我想在RichTextBox匹配“我是谁”字符串,以一循环执行,部分代码
this.RichTextBox.Select(Index, 3);
this.RichTextBox.SelectionColor = Color.Red;

出现了问题:
当“我是谁”为RichTextBox中第一个字符时,有时会将全部内容
都变为红色,第一次匹配没有问题,第二次就一定会失败!?????

望各位大侠帮忙!谢谢!!!!
...全文
200 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xminsong 2008-10-31
  • 打赏
  • 举报
回复
还是靠自己算了,明晚结贴,分照散。
-过客- 2008-10-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 xminsong 的帖子:]
出现了问题:
当“我是谁”为RichTextBox中第一个字符时,有时会将全部内容
都变为红色,第一次匹配没有问题,第二次就一定会失败!?????
[/Quote]

没看明白你描述的是什么意思,4楼的代码在我这里测试没有问题,这是你实际出问题的代码吗?
贴你实际出现问题的代码,是报异常还是结果不对,报异常就贴下异常信息
xminsong 2008-10-31
  • 打赏
  • 举报
回复
唉!失望中!
emile02220 2008-10-31
  • 打赏
  • 举报
回复
应该先提取出你想变颜色的字段,然后对其操作
mjjzg 2008-10-31
  • 打赏
  • 举报
回复
支持楼上,顶一下
bbbbbb888888 2008-10-31
  • 打赏
  • 举报
回复
mark一下
-过客- 2008-10-31
  • 打赏
  • 举报
回复
懒得写了,忘了是哪天看到的代码,直接拿过来用吧

int SearchPos = 0;
while (richTextBox1.Find(textBox1.Text.ToCharArray(), SearchPos) != -1)
{
this.richTextBox1.SelectionStart = richTextBox1.Find(textBox1.Text.ToCharArray(), SearchPos);
this.richTextBox1.SelectionLength = this.textBox1.Text.Length;
this.richTextBox1.SelectionColor = Color.Red;
SearchPos += this.richTextBox1.SelectionStart + this.richTextBox1.SelectionLength;
if (SearchPos > richTextBox1.Text.Length)
{
break;
}
}


其中textBox1的内容为需要变色的关键字
xminsong 2008-10-31
  • 打赏
  • 举报
回复
我的代码如下:
Regex aRegex = new Regex(“我是谁”);
MatchCollection MC = aRegex.Matches(this.richBody.Text);
for (int i = 0; i < MC.Count; i++)
{
this.richBody.Select(MC[i].Index, 3);
this.richBody.SelectionColor = Color.Red;
}
zx005 2008-10-31
  • 打赏
  • 举报
回复
在多给点代码
xminsong 2008-10-31
  • 打赏
  • 举报
回复
正则
zx005 2008-10-31
  • 打赏
  • 举报
回复
你是怎么匹配的?在多给点代码

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧