RichTextBox теряет форматирование - PullRequest
2 голосов
/ 02 ноября 2011

Я пытаюсь создать динамическую коллекцию RichTextBox - где пользователи могут добавить несколько полей - отредактировать их и сохранить в БД.

Случай 1 (один и только)

  • Вставка RTF-данных из документа WordPad в RTB-контроль.
  • Форматирование должно быть таким:

    {\ rtf1 \ ansi \ ansicpg1252 \ deff0 \ deflang1044 {\ fonttbl {\ f0 \ fnil \ fcharset0 Times New Roman;} {\ f1 \ fnil \ fcharset0 Microsoft Sans Serif;}} \ r \ n \ viewkind4 \ uc1 \ pard \ lang20 \ f0 \ fs40 Wattup? \ lang1044 \ f1 \fs17 \ par \ r \ n} \ r \ n

  • Сохранение в DataSet (тип данных Байт []), преобразование так:

    public Byte[] toByteArray(string str)
    {
        System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
        return encoding.GetBytes(str);
    }
    
  • Загрузка из DataSet - создание новых экземпляров RichText-Box.Преобразование выполняется следующим образом:

    public string fromByteArray(Byte[] bytes)
    {
        System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
        return enc.GetString(bytes);
    }
    
  • Загрузка из DataSet - применение данных, которые я сохранил, к свойству Rtf нового RTB.Свойство Rtf остается таким же, как и должно быть.

  • Загрузка элемента управления - Форматирование заканчивается следующим образом:

    {\ rtf1 \ ansi \ ansicpg1252 \ deff0 \deflang1044 {\ fonttbl {\ f0 \ fnil \ fcharset0 Microsoft Sans Serif;}} \ r \ n \ viewkind4 \ uc1 \ pard \ lang20 \ f0 \ fs17 Wattup? \ lang1044 \ par \ r \ n} \ r \ n

В заключение - вставка RTF в элемент управления работает нормально - но загрузка тех же RTF-данных в «незагруженный» RTB, похоже, не удалась.

Будет ли RichTextBox-control применять какое-либо автоматическое форматирование к RTF, если свойство установлено до визуальной загрузки компонента?

Возможно, есть простое решение этого вопроса. Есть идеи?

...