【发布时间】:2018-02-07 05:36:51
【问题描述】:
我有一个丰富的文本框,我在其中填充了格式化的文本。 richtextbox 的 RTF 如下所示:-
{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Bookman Old Style;}}
\viewkind4\uc1\pard\lang1033\b\f0\fs21 Name\b0\tab : John Miller\par
\b Current Address\b0\tab : ABCDEFGHI JKLMNOP QRST UVWXYZ\par
\b Permanent Address\b0\tab : ABCDEFGHI JKLMNOP QRST UVWXYZ\par
\b Temporary Address\b0\tab : ABCDEFGHI JKLMNOP QRST UVWXYZ\par
}
它的输出看起来像这样:-
姓名:John Miller
当前地址:ABCDEFGHI JKLMNOP QRST UVWXYZ
永久地址:ABCDEFGHI JKLMNOP QRST '要在此处添加换行符' UVWXYZ
临时地址 : ABCDEFGHI JKLMNOP QRST UVWXYZ
现在我想在 文本索引 119 处添加一个换行符,其中写有 要在此处添加换行符。我该怎么做?
挑战
-
您不能直接在以下文本中使用换行符:
richTextBox.Text = richTextBox.Text.Substring(0,119) + Environment.NewLine + richTextBox.Text.Substring(119, richTextBox.Text.Length - 119);因为它会删除我在文本文本中所做的粗体设置。
无法直接在 RTF 中更改,因为我们不知道特定文本可能位于哪个索引处。假设 文本位于第 119 个索引,但 RTF 位于第 263 个索引。
我们也不能使用文本搜索来查找 RTF 中的索引,因为所有 3 个地址都完全相同。
【问题讨论】:
-
那么,您究竟使用什么机制来确定需要换行的位置?
-
System.Magic.DoMagic
(myMagicValue);说真的,唯一的其他选择是修改您在文本框中实际创建文本的位置,而您没有包含该文本
标签: c# winforms richtextbox rtf