#c# #.net #formatting #richtextbox
#c# #.net #форматирование #richtextbox
Вопрос:
Я пытаюсь создать динамическую коллекцию RichTextBox, в которую пользователи могут добавлять несколько полей, редактировать их и сохранять в БД.
Случай 1 (единственный и неповторимый)
- Вставка данных RTF из документа wordpad в RTB-элемент управления.
- Форматирование такое, каким оно должно быть:
{rtf1ansiansicpg1252deff0deflang1044{fonttbl{f0fnilfcharset0 Times New Roman;}{f1fnilfcharset0 Microsoft без засечек;}}r nviewkind4uc1 pardlang20f0fs40 Втуп?lang1044f1fs17parrn}r n
- Сохранение в DataSet (тип данных Байт []), преобразование следующим образом:
public Byte[] toByteArray(string str) { System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); return encoding.GetBytes(str); }
- Загрузка из DataSet — создание новых экземпляров RichText-блоков. Преобразование, подобное этому:
public string fromByteArray(Byte[] bytes) { System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); return enc.GetString(bytes); }
- Загрузка из набора данных — применение данных, которые я сохранил, к свойству Rtf нового RTB.
Свойство Rtf по-прежнему остается таким, каким оно должно быть. - Загрузка элемента управления — форматирование заканчивается следующим образом:
{rtf1ansiansicpg1252deff0deflang1044{fonttbl{f0fnilfcharset0 Microsoft без засечек;}}r nviewkind4uc1 pardlang20f0fs17 Втуп?lang1044parr n}r n
В заключение — вставка RTF в элемент управления работает нормально, но загрузка тех же самых RTF-данных в «незагруженный» RTB, похоже, завершается неудачей.
Будет ли элемент управления RichTextBox применять какое-либо автоматическое форматирование к RTF, если свойство установлено перед визуальной загрузкой компонента?
Вероятно, есть простое решение этой проблемы.. Есть идеи?
Комментарии:
1. При перезагрузке присваивайте свойство Rtf, а не свойство Text. Хе-хе.
2. Вы опубликовали код кодировки, кажется, все в порядке. Проблема, вероятно, заключается в интерфейсе Db и / или RTB.
3. В дополнение к комментарию Хенка. Возможно, вы захотите изменить ASCII-кодировку на ту же кодировку, которую вы используете в БД
4. Спасибо — я устанавливаю Rtf-свойство. Если бы я установил текстовое свойство, которое я обнаружил, я бы увидел rtf-код в своем компоненте. Суть проблемы не связана с БД или кодировкой — rtf заканчивается другим шрифтом и совершенно другим форматированием.