Добавить форматированный текст из 2 RichTextbox в другой RichTextBox в C#
У меня есть 3 RichTextBoxes: richTextBox1, richTextBox2 и richTextBox3.
Я запускаю приложение и ввожу текст в текстовые поля 1 и 2.
Таким образом, текст для richTextBox1 - это "Test", а для richTextBox2 - "ing".
Теперь я хочу добавить этот текст вместе и поместить его в другой richTextBox (с сохранением любого форматирования, такого как жирный шрифт, подчеркивание и т. Д.)
Поэтому я пробую следующий код:
richTextBox3.Rtf = richTextBox1.Rtf + richTextBox2.Rtf;
Это не вызывает никаких ошибок, но я получаю только текст из richTextBox1. Итак, я получаю "Тест".
Итак, как мне скопировать содержимое 2 RichTextBoxes, сохраняя формат?
Ta
2 ответа
Решение
Вы хотите сделать это:
richTextBox3.Rtf = richTextBox1.Rtf
richTextBox3.Select(richTextBox3.TextLength, 0);
richTextBox3.SelectedRtf = richTextBox2.Rtf;
Это должно делать свое дело.
Использование:
richTextBox3.Rtf = MergeRtfTexts(new RichTextBox[] { richTextBox1, richTextBox2});
Функция слияния RTF:
private string MergeRtfTexts(RichTextBox[] SourceRtbBoxes)
{
using (RichTextBox temp = new RichTextBox())
{
foreach (RichTextBox rtbSource in SourceRtbBoxes)
{
rtbSource.SelectAll();
//move the end
temp.Select(temp.TextLength, 0);
//append the rtf
temp.SelectedRtf = rtbSource.SelectedRtf;
}
return temp.Rtf;
}
}