从字节数组填充TXTextControl时,如何避免丢失文本格式?

时间:2013-10-04 07:22:35

标签: winforms txtextcontrol

我有一些小的“模板”样式的TXTextControl文档,我将它们组合起来构建一个大文档。

使用TXTextControl在我的应用程序中创建模板,并使用TXTextControl InternalFormat将内容作为字节数组存储在数据库中。

我检索每个模板文档并使用Selection类构建一个新文档,以加载每个文档的内容,如下所示;

tx.Selection.Load(myContent, BinaryStreamType.InternalFormat);

myContent是从数据库中读取的字节数组。

大多数模板文档只是一行,但其中有一些标签被更改,可能是居中,右对齐等。

我注意到的是,如果每个小文档以换行符结束(即用户在保存之前点击文档中输入),模板文档会正确插入。

如果没有换行,则标签和对齐将丢失。如果“模板文档”不止一行,则只会在最后一行丢失格式。

更糟糕的是,如果模板文档的最后一个位置有一个TextField,那么插入此模板文档之后插入到我的新文档中的所有内容都会被插入,就好像它是TextField中的文本一样,使新文档看起来很糟糕。

是否可以从字节数组中向TXTextControl InternalFormat样式文本插入少量数据,并确保它与创建时完全相同?

或者,我可以强制正确使用我正在使用的字节数组 - 使用CR.LF或其它东西来强制正确插入。

1 个答案:

答案 0 :(得分:1)

我设法找到的唯一“解决方法”是在插入的文档后附加一个新行。

这仅适用于直接使用TXTextControl.TextControl对象构建文本,而不是对选择对象的引用属于TextControl对象。

这有效;

TXTextControl.TextControl tx = new TXTextControl.TextControl();
tx.CreateControl();

tx.Selection.Start = -1;
tx.Selection.Text = System.Enviornment.NewLine;

但是,将选择对象传递给流程并传递它以在其选择对象中构建docoument不起作用。保持原始控件(及其选择)的格式,这可能是我猜的。