具有语法突出显示的文本框/富文本框? [C#] [关闭]
Posted
技术标签:
【中文标题】具有语法突出显示的文本框/富文本框? [C#] [关闭]【英文标题】:A textbox/richtextbox that has syntax highlighting? [C#] [closed] 【发布时间】:2010-11-08 10:24:16 【问题描述】:我在哪里可以找到一个 WinForms 控件,它会突出显示粘贴到其中的源代码?我想要一个支持多种不同语言的语法高亮显示,但如果它只适用于 C#,我也可以。
【问题讨论】:
【参考方案1】:Scintilla.NET 可能就是你要找的东西
【讨论】:
这很好,感谢您的链接,很高兴知道至少有一个开源替代品,但它留下了很多渴望获得 VS 的外观和感觉 谢谢,这似乎正是我要找的。span> 请注意,上面的答案比下面的一些提交要早近两年。例如,answer from David Maron 非常出色,其中包含一个 link to a blog,其中包含对如何使用其库的详尽说明、反对 Scintilla.NET 的论点和示例代码。 您知道 ScintillaNet 支持的内置 语言的确切含义吗?我找不到任何方法来理解它的built-in
功能,我们总是必须自己设置KeyWords
并设置样式,一切使它看起来就像customize,而不是内置和完全可以使用。我知道在语言开发时可能会在以后添加关键字,但是应该添加基本集(正如built-in
的意思),并且可以通过自定义代码添加/删除附加集。设置控件以突出显示非常熟悉的语言(如 SQL)的代码太多
Scintilla.NET 基本上是一个围绕 activeX 控件的包装器:任何方法调用都会延迟运行,而且我在运行高级场景时遇到了很多麻烦,例如同步多个实例,包括区域展开/折叠。我更喜欢使用 FCTB (nuget),它使用 vanilla .NET 并且运行良好。这有点令人难过,因为 Scintilla 众所周知并且很棒,但 Scintilla.NET 似乎只适合简单的场景。【参考方案2】:
最近刚刚从 codeproject Fast Colored TextBox for syntax highlighting 找到了一个不错的控件。
使用富文本框作为荧光笔的唯一问题是,在文档很大的情况下,着色性能会变慢。对于中等大小的文档,此问题可以通过延迟突出显示来解决。
【讨论】:
FCTB 自那以后发生了很大的变化,并且是恕我直言的方式。【参考方案3】:作为开源替代品,请查看:
dotNetFireball ICSharpCode.TextEditor 来自SharpDevelop【讨论】:
【参考方案4】:将 ICSharpCode.TextEditor 程序集引用添加到项目中,为 Visual Studio Toolbox 选择程序集和控件。之后,您可以将控制权交给表单。令人惊讶的是,您不会看到选择语法高亮模式的属性。取而代之的是,您必须使用方法 SetHighlighting。字符串参数设置突出显示可用模式列表中的模式。这些架构嵌入到控件中。
如何使用、更改架构和下载示例,看following article
【讨论】:
【参考方案5】:如果您愿意为控件付费,我强烈推荐这个:QWhale Syntax Edit。它有很多功能,附带源代码,并支持多种语言。我自己将它用于 C#、VB.NET、SQL(MS 和 Oracle),它拥有 VS 提供的一切。
【讨论】:
否决?为了?他想要一个提供 Visual Studio 外观的工具。我推荐了一个支持多种语言、VS 外观和感觉并且不会对钱包造成可怕负担的版本。这个答案怎么不能满足问题?【参考方案6】:查看 AvalonEdit 控件。 CodeProject 上有一个good article 解释如何使用它。
【讨论】:
【参考方案7】:不确定是否有任何开箱即用的非第三方解决方案。
但是,你看过Actipro SyntaxEditor 组件吗? LinqPad,ubercool linq 工具使用它进行语法高亮和智能感知。
【讨论】:
【参考方案8】:你可以试试这个http://www.codeproject.com/KB/edit/SyntaxHighlighting.aspx
【讨论】:
以上是关于具有语法突出显示的文本框/富文本框? [C#] [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# Winforms 程序的文本框中突出显示文本?