winform中有什么代码高亮的组件?

zwbdabc 2015-03-16 07:59:31
就是一个文本框,我输入c#的代码,然后一点按钮,代码被高亮显示,即关键字、类型名、字符串值等用不同颜色显示。
有没有相应的组件,并附上下载地址。
...全文
292 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2015-03-17
  • 打赏
  • 举报
回复
引用 8 楼 zwbdabc 的回复:
[quote=引用 6 楼 Z65443344 的回复:] 循环赋值效率其实并不低,但是每次赋值颜色之后它都会刷新,导致效率低 如果你需要改变颜色的地方太多,那么你最好一开始让布局挂起,等都赋值之后才恢复布局逻辑,让它只刷新一次 至于匹配文字,怎么样也都要从头到尾的去匹配的,不管你是用IndexOf还是正则,这效率都高不到哪里去
请问怎样实现布局挂起只刷新一次啊?[/quote] 你参考一下Designer.cs文件里的代码就知道了 窗体加载的时候,也是先挂起布局逻辑,一次性显示出来,而不是一个控件一个控件的刷新出来的
於黾 2015-03-16
  • 打赏
  • 举报
回复
於黾 2015-03-16
  • 打赏
  • 举报
回复

private void ChangeBadColor()//BAD字样修改为红色
{
richTextBox1.SelectAll();
richTextBox1.SelectionColor = Color.Black;

int BadIndex = 0;

while (BadIndex < richTextBox1.Text.Length && BadIndex > -1)
{
BadIndex = richTextBox1.Text.IndexOf("Bad", BadIndex + 1);

if (BadIndex > 0)
{
richTextBox1.Select(BadIndex, 3);
richTextBox1.SelectionColor = Color.Red;
}
}

richTextBox1.SelectionLength = 0;
richTextBox1.SelectionStart = 0;
}
exception92 2015-03-16
  • 打赏
  • 举报
回复
在窗体程序中,这种功能 几乎不能实现。
於黾 2015-03-16
  • 打赏
  • 举报
回复
richtextbox就可以 先循环匹配出关键字,然后用richtextbox.select选中它,再设置SelecionColor
zwbdabc 2015-03-16
  • 打赏
  • 举报
回复
引用 6 楼 Z65443344 的回复:
循环赋值效率其实并不低,但是每次赋值颜色之后它都会刷新,导致效率低 如果你需要改变颜色的地方太多,那么你最好一开始让布局挂起,等都赋值之后才恢复布局逻辑,让它只刷新一次 至于匹配文字,怎么样也都要从头到尾的去匹配的,不管你是用IndexOf还是正则,这效率都高不到哪里去
请问怎样实现布局挂起只刷新一次啊?
本拉灯 2015-03-16
  • 打赏
  • 举报
回复
ICSharpCode.TextEditor.dll HighlightingEditor.dll 这两个就是了 http://www.icsharpcode.net/ 这里面原码就有。
於黾 2015-03-16
  • 打赏
  • 举报
回复
循环赋值效率其实并不低,但是每次赋值颜色之后它都会刷新,导致效率低 如果你需要改变颜色的地方太多,那么你最好一开始让布局挂起,等都赋值之后才恢复布局逻辑,让它只刷新一次 至于匹配文字,怎么样也都要从头到尾的去匹配的,不管你是用IndexOf还是正则,这效率都高不到哪里去
zj_zwl 2015-03-16
  • 打赏
  • 举报
回复
引用 4 楼 Z65443344 的回复:
效率比较低

110,539

社区成员

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

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

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