RichTextBox里面的字怎么变颜色 那你就设置RichTextBox的ForeColor和Font的属性楼。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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); } } Easy你改变颜色的时候把Enable属性设为false,这样就不会闪来闪去的等你改变好颜色以后,再把属性恢复过来 还是会闪的呀!没用!能不能在加入rich以前就改变颜色呢? 我想实现的功能是这样的在RichTextBox里面放一篇代码然后通过点击一个功能按钮把里面的代码,比如c#的代码按照语法进行颜色改变但是我在改变颜色的时候,RichTextBox会不停的闪动而且,我用的方法是按照要求一个一个字符串的查找我发现这样很慢,或许是我的算法有问题谁知道怎么解决呢?分不够可以加分的! 那你不要用RichTextBox,用Graphics.DrawString()吧。自己看看帮助,Graphics.DrawString()很灵活,应该可以满足你的要求。在把文件读入数组时就给定其颜色。再讨论…… 算了在你要改变颜色的时候,隐藏richtextbox(visible=false)改变完颜色以后,再显示 我试过,采取替换SelectedRtf中的颜色代码值,速度相当快,也不会有闪烁问题。 闪耀的问题就是在选择文本的时候,因为不是连续的,所以他要一个一个的选择,才会闪耀有没有办法在往richtextbox里面写东西之前就把颜色代码加到字符串里面,然后再把字符串写到richtextbox里面呢?? 试一试先在剪贴板里面操作,设置颜色,然后把剪贴板的东西送到richtextbox 问题是我不知道richtextbox颜色的格式怎么写呀? 最终秘籍出来了(呼~~满头大汗了...)richtextbox中有颜色的字体用的是以下格式Rich Text FormatRich Text Format Without ObjectsRTF As TextSystem.StringUnicodeTextTextEmbed SourceObject DescriptorMetaFilePict一般的文本是下面的格式System.StringUnicodeTextTextLocaleOEMText所以要设置颜色的话,要用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} 这个我今天也查到了资料可是不知道怎么把这些控制符写到richtextbox里面呀! er..不好意思忘了补充复制了上面rtf代码直接设置text属性是不行的(看到的是你粘贴的文本,毫无变化)必须给Rtf属性赋值(这样才是你要的文本) richTextbox1.Rtf 赋值吗?他不管怎么写,他都提示我格式不对?到底怎么赋值? 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}" 我只想要颜色那部分是不是这样写richTextBox1.Rtf=@"{\colortbl ;\red255\green0\blue0;}"可他包错呀!格式不对 那是因为你格式错了吧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} 哦!明白了!好复杂呀!这个问题结了!等一会给你分再问问,在vs.net里面那种会自动语法变颜色的是怎么实现的?而且他的效率很高呀? 其实我也有个东东要遇到这种快速变色的方法对vs.net里面那种高速变色的算法我也很想不通也很想知道呀不过因为还没遇到这个问题,所以没有收集过相关资料既然大家有共同目的,以后多多交流吧:) 好呀!给分啦!谢谢你了!用空qq上聊我的QQ:9376412 主明:c# textbox visible 问题 传值问题... xpath 如何格式化这样的数字字符串? 如果你正了路过,事又不急的话,或许你可以帮帮我呵... C#操作EXCEL紧急问题 程序设计 —— 分层 win7安装vs2005需要哪些组件 定义一个可为空类型 winform 做好的程序如何在别的机器上安装(比如win98系统上) 在C#中使用正则表达式的问题 请问 int i=Console.Read() -'0'; 中,后面加 -'0'是什么意思
{
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);
}
}
你改变颜色的时候把Enable属性设为false,这样就不会闪来闪去的
等你改变好颜色以后,再把属性恢复过来
没用!
能不能在加入rich以前就改变颜色呢?
在RichTextBox里面放一篇代码
然后通过点击一个功能按钮
把里面的代码,比如c#的代码
按照语法进行颜色改变但是我在改变颜色的时候,RichTextBox会不停的闪动
而且,我用的方法是按照要求一个一个字符串的查找
我发现这样很慢,或许是我的算法有问题谁知道怎么解决呢?
分不够可以加分的!
在把文件读入数组时就给定其颜色。
再讨论……
在你要改变颜色的时候,隐藏richtextbox(visible=false)
改变完颜色以后,再显示
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
}
可是不知道怎么把这些控制符写到richtextbox里面呀!
忘了补充
复制了上面rtf代码
直接设置text属性是不行的(看到的是你粘贴的文本,毫无变化)
必须给Rtf属性赋值(这样才是你要的文本)
他不管怎么写,他都提示我格式不对?
到底怎么赋值?
{\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
}"
richTextBox1.Rtf=@"{\colortbl ;\red255\green0\blue0;}"
可他包错呀!格式不对
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
}
等一会给你分
再问问,在vs.net里面那种会自动语法变颜色的是怎么实现的?
而且他的效率很高呀?
对vs.net里面那种高速变色的算法我也很想不通也很想知道呀
不过因为还没遇到这个问题,所以没有收集过相关资料
既然大家有共同目的,以后多多交流吧:)
用空qq上聊
我的QQ:9376412 主明:c#