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

Winforms 从字节数组填充TXTextControl时,如何避免丢失文本格式?,winforms,txtextcontrol,Winforms,Txtextcontrol,我有许多小的“模板”样式的TXTextControl文档,我将它们组合起来构建一个大文档 模板在我的应用程序中使用txtcontrol创建,内容使用TXTextControl格式作为字节数组存储在数据库中 我检索每个模板文档并使用Selection类构建一个新文档,以加载每个模板文档的内容,如下所示 tx.Selection.Load(myContent, BinaryStreamType.InternalFormat); myContent是从数据库读取的字节数组 大多数模板文档只有一行,但

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

模板在我的应用程序中使用txtcontrol创建,内容使用TXTextControl格式作为字节数组存储在数据库中

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

tx.Selection.Load(myContent, BinaryStreamType.InternalFormat);
myContent是从数据库读取的字节数组

大多数模板文档只有一行,但其中的一些选项卡已更改,并且可能居中、右对齐等

我注意到的是,如果每个小文档都以换行符结尾(即,用户在保存文档之前在文档中点击enter键),则模板文档将正确插入

如果没有换行符,则制表符和对齐方式将丢失。如果“模板文档”不止一行,则仅最后一行的格式将丢失

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

是否可以从字节数组向TXTextControl InternalFormat样式文本插入少量内容,并确保插入内容与创建时完全一致

或者,我可以强制我使用的字节数组正确终止-使用CR.LF或其他方法强制它正确插入。

我找到的唯一“解决方法”是在插入的文档后追加一行

但是,这仅在直接使用TXTextControl.TextControl对象生成文本时有效,而不是对属于TextControl对象的选择对象的引用

这是有效的

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

tx.Selection.Start = -1;
tx.Selection.Text = System.Enviornment.NewLine;
但是,将一个选择对象传递到流程中,并在其选择对象内构建文档,这是行不通的。原始控件(及其所选内容)的格式保持不变,我想这可能是有道理的。

我找到的唯一“解决办法”是在插入的文档后追加一行

但是,这仅在直接使用TXTextControl.TextControl对象生成文本时有效,而不是对属于TextControl对象的选择对象的引用

这是有效的

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

tx.Selection.Start = -1;
tx.Selection.Text = System.Enviornment.NewLine;
但是,将一个选择对象传递到流程中,并在其选择对象内构建文档,这是行不通的。原始控件(及其所选内容)的格式保持不变,我想这可能是有道理的