关于TextControl控件的Append方法问题
TextControl.Append(Byte[], BinaryStreamType, AppendSettings),我在调用这个方法追加文档时,将AppendSettings设置成StartWithNewParagraph或者None时,观察TextControl.Lines.Count的数量是不变的,这样就导致我无法设置每个文档的第一页是从那行开始的,以下是个循环给TextControl追加文档代码:for (int i = 0; i < _lstFileIndex.Count; i++)
{
if (i == 0)
{
_lstFileIndex.StartLine = 1;
_lstFileIndex.StartPage = 1;
tc_Edit.Load(_lstFileIndex.Buffer, TXTextControl.BinaryStreamType.InternalUnicodeFormat);
_lstFileIndex.EndLine = tc_Edit.Lines.Count;
_lstFileIndex.EndPage = tc_Edit.Pages;
}
else
{
tc_Edit.Append(_lstFileIndex.Buffer, TXTextControl.BinaryStreamType.InternalUnicodeFormat, TXTextControl.AppendSettings.StartWithNewParagraph);
_lstFileIndex.StartLine = _lstFileIndex.EndLine;
_lstFileIndex.StartPage = tc_Edit.Lines.StartLine].Page;
_lstFileIndex.EndLine = tc_Edit.Lines.Count;
_lstFileIndex.EndPage = tc_Edit.Pages;
}
}
第一次和第二次循环tc_Edit.Lines.Count值发生改变,第三次就不变了!
你把工程发过来吧,重现不了。
工程如果太大,就新建一个,就做这一件事。 项目在压缩包里,麻烦看看,注意TextControl.Lines.Count这个值 跟了一下,从第三次开始 listFileIndex.Buffer 就没有变化了,实际内容全是没有增加。Pages从第三次开始就成了8,后续几次Append并没有实际添加内容到textcontrol,所以Lines不变是正常的。 我试了下,创建了三个文件,三个文件的内容都不一样,Append追加第三个的时候TextControl.Lines.Count值不变,也就是内容没有追加到textcontrol中去,不知道为什么到三个文件追加不进去。 感觉是bug。换了另一个append重载方法,Count是变化的。你可以试试。
已经反馈给厂商,有回复通知你。 gw0506 发表于 2017-7-4 18:14
感觉是bug。换了另一个append重载方法,Count是变化的。你可以试试。
已经反馈给厂商,有回复通知你。
你使用的Append方法加载的是什么类型的?我试了下,用FileStream,byte[],strPath这三种加载方式,TextControl.Lines.Count,在加载第三个的时候就不变了 gw0506 发表于 2017-7-4 18:14
感觉是bug。换了另一个append重载方法,Count是变化的。你可以试试。
已经反馈给厂商,有回复通知你。
这个问题也解决了,可以这样写:
this.tc_Edit.Append("\r\n", TXTextControl.StringStreamType.PlainText, TXTextControl.AppendSettings.None);
TXTextControl.LoadSettings LoadSettings = new TXTextControl.LoadSettings();
LoadSettings.LoadImages = true;
this.tc_Edit.Append(_lstFileIndex.Buffer, TXTextControl.BinaryStreamType.InternalUnicodeFormat, LoadSettings, TXTextControl.AppendSettings.StartWithNewParagraph);
在Append之前,先追加个\r\n,TextControl.Lines.Count值就会一直随着追加文件变动。 你这个是非常有价值的宝贵经验。学习了~~~
送你金币,表示感谢。
页:
[1]