我正在尝试创建一个动态的RichTextBox集合 - 用户可以在其中添加几个框 - 编辑它们并保存到数据库。
案例1(唯一的)
格式化应该是:
{\ 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应用某种自动格式化?
这可能是一个简单的解决方案..任何想法?