我如何在richtextbox控件中实现随用户输入的语法高亮,并使用String[]关键字。我将很快在网络上发布一个轻量级记事本,希望它具有语法高亮功能。我正在使用Windows窗体。 有人能发一个代码示例吗?
我如何在richtextbox控件中实现随用户输入的语法高亮,并使用String[]关键字。我将很快在网络上发布一个轻量级记事本,希望它具有语法高亮功能。我正在使用Windows窗体。 有人能发一个代码示例吗?
您可以在richtextbox中更改选定单词的字体。查看控件的Select和SelectedFont属性。
但实际上,您需要遍历单词,检查单词是否存在于关键字中,然后使用上述属性更改字体。
并非完全回答您的问题,但您是否查看过SharpDevelop的文本编辑器组件?它非常轻巧(<200kB IIRC),可以轻松地嵌入WinForms应用程序,并且具有内置的多种语言的语法高亮功能。
否则,您可能需要查看this CodeProject page。它会在您输入时重新格式化RTF,对于大文件来说效率不是很高,而且其中包含一些令人毛骨悚然的catch (Exception) { }
块,因此我不确定是否会在生命关键应用中使用它,但它绝对是了解如何完成此操作的良好起点。
语法高亮并不是一项容易高效完成的任务。你可以找到许多解决方案(比如涉及修改RTF的方案),但这些都只是一次性的解决方案。如果你想在编辑过程中实时高亮和取消高亮单词,那么你的代码必须做好准备。我不会重新发明轮子,而是使用ICSharp.TextEditor或类似工具来解决你的问题。