如何在RichTextBox [C#]中语法突出显示?

时间:2009-11-08 17:59:45

标签: c# syntax-highlighting

如何在richtextbox控件作为用户类型使用字符串[]关键字中语法高亮显示。我将很快发布一个轻量级的记事本到网上,我希望它有语法高亮。我正在使用Windows表单。有人可以发布代码示例吗?

6 个答案:

答案 0 :(得分:12)

答案 1 :(得分:5)

Scintilla控件是一个出色的源代码编辑器,其中包括一系列其他功能中的语法突出显示。您可以将其嵌入自己的应用中,并且可以使用.NET wrapper

使用Scintilla,您可以指定关键字,然后在键入时应用语法突出显示。

答案 2 :(得分:2)

您使用的是WinForms还是WPF?

如果是WPF,你可以查看AvalonEdit。它是免费和开源的,它在SharpDevelop(开源IDE)中使用。

答案 3 :(得分:2)

您可以更改richtextbox中所选单词的字体。看一下控件的Select和SelectedFont属性。

但实际上,您需要遍历单词,检查关键字中是否存在单词,然后使用上述属性更改字体。

答案 4 :(得分:1)

不完全是您问题的答案,但您是否看过SharpDevelop的文字编辑器组件?它非常轻量级(<200kB IIRC),可以轻松嵌入到WinForms应用程序中,并具有内置多种语言的语法高亮功能。

否则,您可能需要查看this CodeProject page。它在您键入时重新格式化RTF,这对于大型文件来说效率不高,并且它包含一些令人毛骨悚然的catch (Exception) { }块,所以我不确定是否会在生命关键型应用程序中使用它,但它是绝对是一个很好的起点,看看它是如何做到的。

答案 5 :(得分:1)

语法突出显示不是一项有效执行的简单任务。您可以找到的许多解决方案(如涉及修改RTF的解决方案)都是一次性解决方案。如果您想在编辑期间动态突出显示和取消突出显示单词,您的代码必须为此做好准备。我不会重新发明轮子并使用ICSharp.TextEditor或类似的来解决你的问题。