C# 赢。形式:向富文本框添加换行符
C# Win. Form : Adding a line break to a richtextbox
我有一个 richtextbox,我正在其中填充格式化文本。 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
}
它的 OUTPUT 看起来像这样:-
姓名:约翰·米勒
当前地址:ABCDEFGHI JKLMNOP QRST UVWXYZ
永久地址:ABCDEFGHI JKLMNOP QRST 'line break to be added here' UVWXYZ
临时地址:ABCDEFGHI JKLMNOP QRST UVWXYZ
现在我想在 文本索引 119 处添加一个换行符,其中 换行符要添加到这里 被写入。我该怎么做?
挑战
您不能直接在文本中使用换行符,例如:
richTextBox.Text = richTextBox.Text.Substring(0,119) + Environment.NewLine + richTextBox.Text.Substring(119, richTextBox.Text.Length - 119);
因为它会删除我在文本文本中所做的粗体设置。
无法在 RTF 中直接更改 ,因为我们不知道特定文本可能在哪个索引处。假设 text 位于 119 index 但 RTF 位于 263th index。
我们也无法使用文本搜索来查找 RTF 中的索引,因为所有 3 个地址都完全相同。
这应该为您完成:
rtb1.SelectionStart = 119;
rtb1.SelectionLength = 0;
rtb1.SelectedText = Environment.NewLine;
我有一个 richtextbox,我正在其中填充格式化文本。 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
}
它的 OUTPUT 看起来像这样:-
姓名:约翰·米勒
当前地址:ABCDEFGHI JKLMNOP QRST UVWXYZ
永久地址:ABCDEFGHI JKLMNOP QRST 'line break to be added here' UVWXYZ
临时地址:ABCDEFGHI JKLMNOP QRST UVWXYZ
现在我想在 文本索引 119 处添加一个换行符,其中 换行符要添加到这里 被写入。我该怎么做?
挑战
您不能直接在文本中使用换行符,例如:
richTextBox.Text = richTextBox.Text.Substring(0,119) + Environment.NewLine + richTextBox.Text.Substring(119, richTextBox.Text.Length - 119);
因为它会删除我在文本文本中所做的粗体设置。
无法在 RTF 中直接更改 ,因为我们不知道特定文本可能在哪个索引处。假设 text 位于 119 index 但 RTF 位于 263th index。
我们也无法使用文本搜索来查找 RTF 中的索引,因为所有 3 个地址都完全相同。
这应该为您完成:
rtb1.SelectionStart = 119;
rtb1.SelectionLength = 0;
rtb1.SelectedText = Environment.NewLine;