2013-10-04 31 views
1

我有一些小的「模板」風格的TXTextControl文件,我結合起來構建一個大文件。從字節數組填充TXTextControl時,如何避免丟失文本的格式?

使用TXTextControl在我的應用程序中創建模板,並將內容作爲字節數組存儲在TXTextControl內部格式的數據庫中。

我檢索每個模板文檔,並使用Selection類構建一個新文檔,以加載每個文檔的內容,如下所示;

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

myContent是從數據庫讀取的字節數組。

大部分的模板文件都只有一條線路,但在他們改變一些標籤,並可以居中,右對齊等

我已經注意到,如果每個小文件有一個換行符結束(即用戶點擊保存前輸入文檔)模板文檔插入正確。

如果沒有換行符,則標籤和對齊將丟失。如果「模板文檔」不止一行,格式會丟失,只是最後一行。

更糟糕的是,如果在模板文檔的最後一個位置有一個TextField,那麼在此模板文檔之後插入到我的新文檔中的所有內容都會插入,就好像它是TextField中的文本一樣,從而使新文檔看起來很糟糕。

是否可以從字節數組中插入少量的TXTextControl InternalFormat樣式文本,並確保它完全按照創建時那樣插入?

或者,我可以強制我正在使用的字節數組被正確終止 - 用CR.LF或其他東西強制它被正確插入。

回答

1

我設法找到的唯一「解決方法」是在插入的文檔後追加一個新行。

這隻能在直接使用TXTextControl.TextControl對象構建文本時使用,而不是對選擇對象的引用屬於TextControl對象。

This Works;

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

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

但是,將選擇對象傳遞給進程並傳遞它以在其選擇對象內構建文檔是行不通的。原始控件(以及它的選擇)的格式保持不變,這可能是有道理的。