RichTextBox丢失格式

时间:2011-11-01 23:41:47

标签: c# .net formatting richtextbox

我正在尝试创建一个动态的RichTextBox集合 - 用户可以在其中添加几个框 - 编辑它们并保存到数据库。

案例1(唯一的)

  • 将wordpad文档中的RTF数据粘贴到RTB控件中。
  • 格式化应该是:

      

    {\ rtf1 \ ansi \ ansicpg1252 \ deff0 \ deflang1044 {\ fonttbl {\ f0 \ fnil \ fcharset0 Times New Roman;} {\ f1 \ fnil \ fcharset0 Microsoft Sans Serif;}} \ r \ n \ view \ indind4 \ 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加载 - 将我保存的数据应用到新RTB的Rtf属性。 Rtf属性仍然应该如此。

  • 加载控件 - 格式化最终会像这样:

      

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

总之 - 将RTF粘贴到控件中工作正常 - 但将相同的RTF数据加载到“未加载”的RTB中似乎失败了。

如果在组件的可视加载之前设置了属性,RichTextBox控件是否会对RTF应用某种自动格式化?

这可能是一个简单的解决方案..任何想法?

0 个答案:

没有答案