2009-06-30 63 views
1
  • 语言= C#
  • .NET版本= 3.5

当我的代码执行语法突出显示文本显示,给用户,被自动滚动。当富文本框中有几百行文本时,这成为一个严重的问题。那么,如何以编程方式修改文本的颜色而不会导致用户看到颜色更改以外的任何内容?执行语法高亮显示时,如何防止自动滚动富文本框?

感谢您的任何和所有帮助。

+0

你能解释一下你是如何进行语法高亮?我想在我正在处理的产品中实现此功能。干杯。 – JSmyth 2009-06-30 05:51:50

+0

我的算法目前包含六个步骤。 1)记住插入符号的当前位置。 2)禁用对文本框的更新。 3)搜索需要突出显示的文本。 4)用适当的颜色突出显示文字。 5)重复步骤3和4,直到所有需要突出显示的文本都高亮显示。 6)将脱字符的位置设置到正确的位置。 这个算法需要一些工作。对大量文本来说速度很慢。但是,只突出显示用户看到的文本应该修复性能问题。 – Mackenzie 2009-07-02 03:20:46

回答

2

你有没有尝试过这样的事情:

Save selstart position. 
Disable updates to the text box. 
Apply syntax highlighting. 
Set selstart to saved value. 
Enable updates.