RichTextbox RTF互相赋值"()"中内容丢失的问题

{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset136 \'b6\'57\'a5\'40?\'a4\'a4\'b0\'c9\'ab\'46;}
{\f1\fnil\fcharset134 \'bb\'aa\'bf\'b5\'d4\'b2\'cc\'e5W9(P);}} \viewkind4\uc1\pard\lang2052\f0\fs24 ef\f1\'c4\'e3\'b0\'a1\'b9\'fe\'b4\'f2\f0 123\par }

 

字体名称包含"()",疑为RTF保留符号,因此将rtf赋值给另一个RichTextbox时将丢失"(P)",字体找不到则改为默认字体。

 

{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset136 \'b6\'57\'a5\'40?\'a4\'a4\'b0\'c9\'ab\'46;}{\f1\fnil\fcharset134 \'bb\'aa\'bf\'b5\'d4\'b2\'cc\'e5W9;}}
\viewkind4\uc1\pard\lang2052\f0\fs24 ef\f1\'c4\'e3\'b0\'a1\'b9\'fe\'b4\'f2\f0 123\par
}

解决方法:将"("替换为"\\("

            this.richTextBox2.Rtf = this.richTextBox1.Rtf.Replace("(", "\\(").Replace(")", "\\)");

 

 

posted @ 2012-11-10 15:15  子夜一梦  阅读(1043)  评论(0编辑  收藏  举报