.NET 2.0ではSystem.Windows.Forms.RichTextBoxコントロールを使用していますが、C#を使用しています。System.Windows.Forms.RichTextBoxに parではなく lineを追加する方法
私はRichTextBoxに追加したい文字列の配列を持っていますが、RTFに新しい段落を作成したくありません。 RTF内の\ parコマンドではなく、\ lineコマンドで行を分割したい。
\ parコマンドの代わりに\ lineコマンドを生成するためにRichTextBox.AppendTextを正常に取得することができませんでした。だから私は自分のテキストを挿入し、手動で\ lineコマンドをRTF自体に挿入しています。
RTFに挿入された元の文字列を見つけることができないため、文字列の1つにRTFでエスケープされた文字が含まれているとエラーになります(たとえば、単一のclosequoteが\ rquoteに変換されます)。
このソリューションでは、RTFで検索する前に、行の文字をエスケープする必要があります。
RichTextBoxコントロールで\ parコマンドを生成する方法ではなく、\ parコマンドを生成する方法がありますか、この解決策に固執して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;
}
}
これも私の発見でした。すべての\ parインスタンスをRTF内の\ lineインスタンスに置き換えたくないので、何か良いものが見つからない限り、私のソリューションを使い続ける必要があります。 – jameswelle
あなたが正しいと思う、それはあなたの文書の段落を殺すでしょう。 RichTextBoxコントロールが改行を行う方法を選択的に変更する方法が見つからない限り、それはハックタイムです!答えを編集する... – Luis