如何在richtextbox控件中突出显示语法作为用户类型和使用String []关键字。我将很快发布一个轻量级的记事本到网上,我希望它有语法突出显示。我正在使用Windows窗体。有人可以发布代码示例吗?如何在RichTextBox中语法突出显示[C#]?
回答
- RichTextBox syntax highlighting(约RichTextBox的本身会谈 - 最小的功能,但你问什么在这里)
- A textbox/richtextbox that has syntax highlighting? [C#](会谈主要是关于做它的其他方式)
您正在使用的WinForms或WPF?
如果是WPF,你可以看看AvalonEdit。它是免费的,开源的,它在SharpDevelop(开源IDE)中使用。
您可以在richtextbox中更改所选单词的字体。看看控件的Select和SelectedFont属性。
但基本上,您需要遍历单词,检查单词是否存在于关键字中,然后使用上述属性更改字体。
不完全是你的问题的答案,但你看看SharpDevelop文本编辑器组件?它非常轻巧(< 200kB IIRC),可以很容易地嵌入到WinForms应用程序中,并为内置的多种语言提供语法高亮显示。
否则,您可能要查看this CodeProject page。它会在输入时重新格式化RTF,对于大型文件来说这不是很有效,它包含一些令人毛骨悚然的块,所以我不确定我是否会将它用于生活关键型应用程序中,但它绝对是一个好起点指出如何做到这一点。
语法突出显示并不是一项容易执行的任务。你可以找到许多解决方案(比如涉及修改RTF的解决方案)是一次性解决方案。如果您想在编辑期间动态突出显示和取消突出显示的文字,您的代码必须准备好。我不会重新发明轮子并使用ICSharp.TextEditor或类似来解决您的问题。
Scintilla控制是一个很好的源代码编辑器,其中包括一系列其他功能中的语法突出显示。您可以将其嵌入到自己的应用程序中,并且有一个.NET wrapper可用。
使用Scintilla,您可以指定关键字,然后在键入时应用语法高亮显示。
如何安装.dll? – 2009-11-12 01:56:13
如果您从http://scintillanet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34393下载.NET Wrapper,那么您可以将文件ScintillaNet.dll添加到项目的“参考”(如果您是使用Visual Studio)。 – 2009-11-12 09:29:28
需要将其中一个dll部署到windows \ system32,这是一个很大的缺点 – 2010-01-19 22:18:25
- 1. C#RichTextBox:突出显示+撤消
- 2. Visual C++ 2008语法突出显示
- 3. 在docbook中突出显示语法
- 4. 在TextMate中D语法突出显示
- 5. 在pydb中语法突出显示
- 6. 在Eclipse中突出显示.tpl语法
- 7. 突出显示RichTextBox中的整行
- 8. Wordpress语法突出显示
- 9. OpenOffice语法突出显示
- 10. Vim语法突出显示
- 11. NSTextView语法突出显示
- 12. Turbine语法突出显示
- 13. 在RichTextBox中突出显示不平衡括号C#Windows窗体
- 14. vi中的语法突出显示
- 15. AS3中的语法突出显示
- 16. vim中的JavaScript语法突出显示
- 17. CSS语法在c#中用正则表达式突出显示
- 18. 如何在JEditorPane中使用Netbeans平台语法突出显示?
- 19. 如何在代码镜像中突出显示语法
- 20. Textmate语法突出显示,从另一种语言扩展突出显示
- 21. 有没有办法让richtextbox在失去焦点时显示突出显示?
- 22. C++编译器在stderr上突出显示CMake语法
- 23. Atmel Studio中的C++没有语法突出显示
- 24. c#/。NET/Winforms RichTextBox:突出显示活动行
- 25. 如何在edittext上突出显示html,css,js语法?
- 26. 如何打开etherpad中的语法突出显示
- 27. JavaScript直播语法突出显示器
- 28. tinyMCE简单语法突出显示
- 29. 自定义语法突出显示rmd
- 30. Visual Studio语法突出显示
语法突出显示,对于设计为在渲染之前回叫或迭代接收文本的文本渲染器,实际上非常简单:它只是一种词法分析,根据其标记类型对文本进行分类。但RTF和其他丰富的编辑器不是这样设计的,模型数据与其表示之间是分开的。 – 2009-11-08 19:31:58
是的,似乎RTF现在看起来挺旧...... :-) – jdehaan 2009-11-08 22:20:31