maxjohy 发表于 2017-7-3 11:20:43

关于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值发生改变,第三次就不变了!

gw0506 发表于 2017-7-3 13:57:25

你把工程发过来吧,重现不了。
工程如果太大,就新建一个,就做这一件事。

maxjohy 发表于 2017-7-4 11:53:43

项目在压缩包里,麻烦看看,注意TextControl.Lines.Count这个值

gw0506 发表于 2017-7-4 12:33:37

跟了一下,从第三次开始 listFileIndex.Buffer 就没有变化了,实际内容全是没有增加。Pages从第三次开始就成了8,后续几次Append并没有实际添加内容到textcontrol,所以Lines不变是正常的。

maxjohy 发表于 2017-7-4 13:45:08

我试了下,创建了三个文件,三个文件的内容都不一样,Append追加第三个的时候TextControl.Lines.Count值不变,也就是内容没有追加到textcontrol中去,不知道为什么到三个文件追加不进去。

gw0506 发表于 2017-7-4 18:14:32

感觉是bug。换了另一个append重载方法,Count是变化的。你可以试试。
已经反馈给厂商,有回复通知你。

maxjohy 发表于 2017-7-12 11:43:16

gw0506 发表于 2017-7-4 18:14
感觉是bug。换了另一个append重载方法,Count是变化的。你可以试试。
已经反馈给厂商,有回复通知你。

你使用的Append方法加载的是什么类型的?我试了下,用FileStream,byte[],strPath这三种加载方式,TextControl.Lines.Count,在加载第三个的时候就不变了

maxjohy 发表于 2017-7-12 16:13:16

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值就会一直随着追加文件变动。

gw0506 发表于 2017-7-12 16:45:12

你这个是非常有价值的宝贵经验。学习了~~~
送你金币,表示感谢。
页: [1]
查看完整版本: 关于TextControl控件的Append方法问题