.NET 2.0 で System.Windows.Forms.RichTextBox コントロールを使用しており、c# を使用しています。
RichTextBox に追加したい文字列の配列がありますが、RTF に新しい段落を作成したくありません。RTF の \par コマンドではなく、\line コマンドで行を分割したい。(入力するだけでなく、Shift + Enterを入力する人をシミュレートしたい。)
RichTextBox.AppendText を取得して \par コマンドの代わりに \line コマンドを生成することができませんでした。そのため、テキストを挿入してから、手動で \line コマンドを RTF 自体に挿入しています。
RTF に挿入した元の文字列が見つからないため、文字列の 1 つに RTF でエスケープされた文字が含まれている場合 (たとえば、単一の終了引用符が \rquote に変換される場合)、これは失敗します。
このソリューションでは、RTF で検索する前に、行内の文字をエスケープする必要があります。
RichTextBox コントロールを取得して、\par コマンドではなく \line コマンドを生成する方法はありますか? または、このソリューションに固執して、RTF エスケープ文字列を検索する必要があります。
これが私の現在のコードです:
string[] lines = textInfo.Lines;
for (int i = 0; i < lines.Length; i++)
{
rtb.AppendText(lines[i]);
if (i < lines.Length - 1)
{
string rtf = rtb.Rtf;
int insertedIndex = rtf.LastIndexOf(lines[i]);
int length = lines[i].Length;
rtf = rtf.Insert(insertedIndex + length, @"\line");
rtb.Rtf = rtf;
}
}