现在Richtextbox1.text = "I 服了 U!你太有才了!";要求处理Richtextbox1.rtf,使得文字中的中文部分红色显示为:I 服了 U!你太有才了!已知匹配中文的正则表达式为:
Regex.IsMatch(str, @"[\u4e00-\u9fa5]+");求具体代码!限用处理rtf来解决

解决方案 »

  1.   

            private void button1_Click(object sender, EventArgs e)
            {
                richTextBox1.SelectionColor = Color.Red ;
     
                Regex r = new Regex(@"[\u4e00-\u9fa5]+", RegexOptions.Multiline);
                MatchCollection mc = r.Matches(richTextBox1.Text);            foreach (Match m in mc)
                {
                    richTextBox1.Select(m.Index ,m.Length);
                    richTextBox1.SelectionColor = Color.Red;
                     
                }
            }
      

  2.   

    柯南真厉害,呵呵不过我担心这种方法如果richTextBox1里面文字很多的时候会不会出现闪烁的现象所以想用处理rtf的方法来解决这个问题啊
      

  3.   

     System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"[\u4e00-\u9fa5]+", RegexOptions.Multiline);
                MatchCollection mc = r.Matches(this.richTextBox1.Text);
                foreach (Match m in mc)
                {
                    this.richTextBox1.Select(m.Index, m.Length);
                    this.richTextBox1.SelectionColor = Color.Red;
                }
    测试通过
      

  4.   

     richTextBox1.SelectionFont = new Font(this.Font.FontFamily,this.Font.Size,FontStyle.Bold);
      

  5.   

    richTextBox1.SelectionFont = new Font(richTextBox1.Font.FontFamily, richTextBox1.Font.Size, FontStyle.Bold);
      

  6.   


    谁能使用处理richTextBox1.rtf来解决这个问题?
      

  7.   

    这个里面的rtf就是我们可以用notepad打开看到的一些里面的代码。
    我们在设置颜色的时候,要去先定义是一个什么样的颜色。比如红色:
    red=255\green = 0\blue= 0.
    斜体用:\i
    加粗用:\b
    换行用:\par.
    其中第一行或者每一个定义在用{}放在一起。
    如果我们要定义10个颜色,那么我们对于第一个定义都要用";"来分割。
    去使用的时候是根据";"的个数来确定它的index的。
    至于头和尾,你可以做一个简单的例子,看看就可以了。
      

  8.   

    当以上的东西你都写好了。直接把你写好的string给你的richTextBox1.rtf就可以了。 
      

  9.   


    有一点了解,但还有一点抽象能不能给下具体代码现在Richtextbox1.text = "I 服了 U!你太有才了!"; 要求处理Richtextbox1.rtf,使得文字中的中文部分红色显示为: I 服了 U!你太有才了! 
      

  10.   

    颜色需要手动添加colortable中的颜色定义,然后后面才能用这个颜色
    加粗:\b,
    恢复到非加粗:\b0
    可以去ms下载rtf的白皮书,里面有非常详细的介绍
      

  11.   

    rtf的白皮书的连接:
    http://www.microsoft.com/downloads/details.aspx?familyid=ac57de32-17f0-4b46-9e4e-467ef9bc5540&displaylang=en
      

  12.   

    经测试,把新浪首页的所有字符串拷到Richtextbox1,然后使用上面的代码测试,没有闪烁的现象
      

  13.   


    你把代码放在TextChange里面试试,会发现很明显
      

  14.   

    private void button1_Click(object sender, EventArgs e)
            {
                richTextBox1.SelectionColor = Color.Red ;
     
                Regex r = new Regex(@"[\u4e00-\u9fa5]+", RegexOptions.Multiline);
                MatchCollection mc = r.Matches(richTextBox1.Text);            foreach (Match m in mc)
                {
                    richTextBox1.Select(m.Index ,m.Length);
                    richTextBox1.SelectionColor = Color.Red;
                     
                }
            }
      

  15.   


    大哥,你用wordpad把上面的东西写上去之后,用notepad打开,就会看到的
    那就是你要的string.
      

  16.   

    red=255\green = 0\blue= 0. 
    斜体用:\i 
    加粗用:\b 
    换行用:\par.