johntao 发表于 2012-6-27 10:52:00

txTextControl 关于WORD 书签问题

为什么对Word书签操作BUG太严重?
我在WORD中做模版,使用书签标记一段文本。
在WORD 定位 可以定位到这一段文本
但是用TX只能获取标签的开始位置,我用SELECTION 定位标签并且设置length一部分正常,还有一部分死活选择不上。
例如:
            DocumentTarget [] dtArr = new DocumentTarget;
            
            textControl1.DocumentTargets.CopyTo(dtArr, 0);
            //遍历标签
            for (int i = 0; i < dtArr.Length; i++)
            {
                textControl1.DocumentTargetMarkers = true;
                textControl1.Select(dtArr.Start+1, 10);

                int nSelect = 10;
                textControl1.Selection.Length = nSelect;//因为可能标签长度太大导致选择失败,选择失败 length为0 -1重新选择
                while (textControl1.Selection.Length == 0)
                {
                  nSelect--;
                  textControl1.Selection.Length = nSelect;
                  
                }
          }
但这个方法对大部分标签可以操作 部分标签不能获取。
我尝试使用TextField 但是 我们的WORD 有大量这样的模板 如果修改起来很麻烦 而且我在设计器中 使用MailMarge 中的fileds and Market 都不能获取TextField后来发现WORD 不能支持 TX的FIELD存储 必须使用 TX TEMPLATE,但是 我无法在设计器中找到标签模板制作的入口

求解释? 我只想设计模板 然后标记一些字符 将这些字符替换 ,如果可以最好能使用WORD 的书签

这是木板:


iceman 发表于 2012-6-27 12:30:00

回复 1楼johntao的帖子

你好,建议使用 Word 中 MergeField 去定位修改位置,下面是我在附件基础上进行修改的文档,把 BookMark 修改 为 MergeField,导入 TX 中,从而进行赋值操作的Demo :

页: [1]
查看完整版本: txTextControl 关于WORD 书签问题