那你就设置RichTextBox的ForeColor和Font的属性楼。

解决方案 »

  1.   

    private void changecolor(string searchString,System.Drawing.Color color)
    {

    int index ;
    index =R.Text.IndexOf(searchString);
    while (index != -1 )
    {
    R.Select(index, searchString.Length);
    R.SelectionColor=color;
    index=R.Text.IndexOf(searchString,index+1);
    }




    }
      

  2.   

    Easy
    你改变颜色的时候把Enable属性设为false,这样就不会闪来闪去的
    等你改变好颜色以后,再把属性恢复过来
      

  3.   

    还是会闪的呀!
    没用!
    能不能在加入rich以前就改变颜色呢?
      

  4.   

    我想实现的功能是这样的
    在RichTextBox里面放一篇代码
    然后通过点击一个功能按钮
    把里面的代码,比如c#的代码
    按照语法进行颜色改变但是我在改变颜色的时候,RichTextBox会不停的闪动
    而且,我用的方法是按照要求一个一个字符串的查找
    我发现这样很慢,或许是我的算法有问题谁知道怎么解决呢?
    分不够可以加分的!
      

  5.   

    那你不要用RichTextBox,用Graphics.DrawString()吧。自己看看帮助,Graphics.DrawString()很灵活,应该可以满足你的要求。
    在把文件读入数组时就给定其颜色。
    再讨论……
      

  6.   

    算了
    在你要改变颜色的时候,隐藏richtextbox(visible=false)
    改变完颜色以后,再显示
      

  7.   

    我试过,采取替换SelectedRtf中的颜色代码值,速度相当快,也不会有闪烁问题。
      

  8.   

    闪耀的问题就是在选择文本的时候,因为不是连续的,所以他要一个一个的选择,才会闪耀有没有办法在往richtextbox里面写东西之前就把颜色代码加到字符串里面,然后再把字符串写到richtextbox里面呢??
      

  9.   

    试一试先在剪贴板里面操作,设置颜色,然后把剪贴板的东西送到richtextbox
      

  10.   

    问题是我不知道richtextbox颜色的格式怎么写呀?
      

  11.   

    最终秘籍出来了(呼~~满头大汗了...)
    richtextbox中有颜色的字体用的是以下格式
    Rich Text Format
    Rich Text Format Without Objects
    RTF As Text
    System.String
    UnicodeText
    Text
    Embed Source
    Object Descriptor
    MetaFilePict
    一般的文本是下面的格式
    System.String
    UnicodeText
    Text
    Locale
    OEMText
    所以要设置颜色的话,要用Rich Text Format
    这个格式其实可以是一般的字符串,只是用转义字符表示的
    比如红色的abcd这样表示
    {\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fmodern\fprq6\fcharset134 \'cb\'ce\'cc\'e5;}{\f1\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
    {\colortbl ;\red255\green0\blue0;}
    \viewkind4\uc1\pard\cf1\lang2052\f0\fs20 abcd\cf0\f1\fs18\par
    }
    可以看到了颜色在{\colortbl ;\red255\green0\blue0;}设置
    字体信息可以在\viewkind4\uc1\pard\cf1\lang2052\f0\fs20 abcd\cf0\f1\fs18\par设置我也是今天才学习到所以对具体的格式设置也不是很清楚
    你可以看msdn library的http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnrtfspec/html/rtfspec.asp
    注意上面这个链接是微软网站上的,不是vs的帮助里面的
    为了方便你,我写出abc(a为红色,b为蓝的,c为绿色的代码)
    {\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fmodern\fprq6\fcharset134 \'cb\'ce\'cc\'e5;}{\f1\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
    {\colortbl ;\red255\green0\blue0;\red0\green0\blue255;\red0\green255\blue0;}
    \viewkind4\uc1\pard\cf1\lang2052\f0\fs20 a\cf2 b\cf3 c\cf0\f1\fs18\par
    }
      

  12.   

    这个我今天也查到了资料
    可是不知道怎么把这些控制符写到richtextbox里面呀!
      

  13.   

    er..不好意思
    忘了补充
    复制了上面rtf代码
    直接设置text属性是不行的(看到的是你粘贴的文本,毫无变化)
    必须给Rtf属性赋值(这样才是你要的文本)
      

  14.   

    richTextbox1.Rtf 赋值吗?
    他不管怎么写,他都提示我格式不对?
    到底怎么赋值?
      

  15.   

    richTextbox1.Rtf=@"{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fmodern\fprq6\fcharset134 \'cb\'ce\'cc\'e5;}{\f1\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
    {\colortbl ;\red255\green0\blue0;\red0\green0\blue255;\red0\green255\blue0;}
    \viewkind4\uc1\pard\cf1\lang2052\f0\fs20 a\cf2 b\cf3 c\cf0\f1\fs18\par
    }"
      

  16.   

    我只想要颜色那部分是不是这样写
    richTextBox1.Rtf=@"{\colortbl ;\red255\green0\blue0;}"
    可他包错呀!格式不对
      

  17.   

    那是因为你格式错了吧
    rtf格式的所有东西要写在{\rtf+数字序号}里面(比如{\rtf1}),否则就是错了
    颜色信息要写在里面
    {\rtf1{\colortbl ;\red255\green0\blue0;}}
    定义了颜色信息以后就可以使用了
    比如刚才定义了红色
    现在可以写出红的abcd
    {\rtf1{\colortbl ;\red255\green0\blue0;}\cf1 abcd}
    可以定义多种颜色
    {\rtf1{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;\red0\green255\blue0;}}
    使用的时候cf+序号+空格就行了
    {\rtf1{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;\red0\green255\blue0;}\cf1 abcd\cf2 defg\cf3 abcdefghijk}
    不过这样写只能显示asc码,因为很多参数被忽略了
    这样显示中文
    {\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fmodern\fprq6\fcharset134 \'cb\'ce\'cc\'e5;}{\f1\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
    {\colortbl ;\red255\green0\blue0;}
    \viewkind4\uc1\pard\cf1\lang2052\f0\fs20\'ba\'ec\'c9\'ab\cf0\f1\fs18\par
    }
      

  18.   

    哦!明白了!好复杂呀!这个问题结了!
    等一会给你分
    再问问,在vs.net里面那种会自动语法变颜色的是怎么实现的?
    而且他的效率很高呀?
      

  19.   

    其实我也有个东东要遇到这种快速变色的方法
    对vs.net里面那种高速变色的算法我也很想不通也很想知道呀
    不过因为还没遇到这个问题,所以没有收集过相关资料
    既然大家有共同目的,以后多多交流吧:)
      

  20.   

    好呀!给分啦!谢谢你了!
    用空qq上聊
    我的QQ:9376412 主明:c#