FastColoredTextBox(FCTB)* 确实 * 提供了类似于StringBuilder的方法,例如
public virtual void AppendText(字符串文本,样式样式)
和类似的方法。但是,它将这些方法中的每一个都视为用户输入:每个动作被添加到撤消历史。
我是通过编程来构建文本的,它是数据字段和文本,沿着所有的格式和样式,而且它会变大。最后我会丢弃撤消历史(或者将控件设置为只读)。这会浪费大量的内存和计算时间。控件需要几秒钟才能使用。
那么,有没有办法在把我的文本传递给FCTB之前构建它呢?
1条答案
按热度按时间ghhkc1vu1#
创建
TextSource
派生类:将此虚方法添加到
TextSource
类:在FCTB类中,将此行添加到
InitTextSource
方法中:为方便起见,请更改
Char
构造函数:使用如下:
如果你不想重新编译FCTB,你可以只添加
TextBuilder
类,并在赋值TextSource
之后调用b.OnTextChanged(0, b.Count - 1)
,但是你可能还是要调整FCTB,并在文本构建器中添加内容。