2013-01-15 55 views
1

当我更改RichtextBox中的Rtf属性时,它会自动格式化它。我想避免这种情况,因为它会从颜色,字体和其他表中删除项目。RichtextBox禁用自动格式化Rtf

"\b\b" -> "\b" 
"\cf1 hello \cf3 world" -> color #2 in the color-table is getting deleted 
//so that cf3 doesn't make any sense anymore 

我可以禁用此“自动格式化”吗?

+0

我会毫不犹豫地这样做 - 你最终打击RTF控制。你在做什么,需要手动更改颜色表? – LarsTech

+0

使用RichTextBox的Text属性获取纯文本。将此 文本放入Rtf属性应该可以取消任何格式化。还可以查看http://stackoverflow.com/questions/1245758/removing-richtext-formatting-from-richtextbox-in-visual-c-sharp – ridoy

+0

@LarsTech我正在给我可能需要的颜色表颜色。但是,如果我不使用它们,rtf控制会删除它们,并将cf3颜色设置为cf2,然后整个颜色将错误地着色,因为cf3仍位于rtf代码 – Bitterblue

回答

1

RTF控制被设计为通过SelectionStartSelectionLength属性来操纵,随后是rtf属性,例如SelectionColor = yada-yada-yada。要操纵RTF数据需要解析RTF字符串属性,而且很难正确识别rtf控制字符和rtf文本,同时保持字体和颜色索引同步。

您的问题的答案是否定的,您不能禁用从控件中自动生成rtf代码。