2011-04-15 99 views
3

我有一个面向堆栈的编程语言,我需要用代码高亮编写一个非常简单的编辑器。这样做最好是用RichTextBox实现代码高亮

我看过很多代码高亮的样本和演示,并且几乎所有的代码都需要刷新整个RichTextBoxOnTextChanged。这适用于较小的代码文件,即使稍微大一点的文件,如果滚动条被正确地重新定位,但文件越大,试图编辑时的滞后就越大。

得到是一个更好的方法。很显然,Visual Studio完美无瑕...

那么,我应该使用什么方法?

(伪代码,甚至只是一个笼统的概念的布局十分精致的答案)

+2

显然,他们已经写自己的控制,即处理一切,不使用的RichTextBox。 – zerkms 2011-04-15 13:04:11

+0

噢,这可能是一个好方法......虽然它可能对他们来说更容易些,因为他们有'TextBox'和'RichTextBox'的来源:P – Entity 2011-04-15 13:07:17

+0

hehe是,*可能*他们有;-) – zerkms 2011-04-15 13:19:20

回答

3

我强烈建议你使用开源ICSharpCode.TextEditor。这是一个非常丰富的文本编辑器,支持可定制的语法突出显示甚至智能感知。除了其他的功能,如线路数,错误的高亮显示,错误提示,码块塌陷等的使用它的应用程序

实例是:

1

不知道你是否真的想自己写,我用AvalonEditSharpDevelop这个编辑器做了类似的工作,效果很不错。尽管如此,WPF却没有说明你使用的是哪种UI技术。您甚至可以在许可证的商业软件中使用它。

GJ