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(")", "\\)");