使用VSTO for Word无法一次更新一个字段

时间:2012-10-30 20:50:33

标签: ms-word vsto field updating

当字段嵌套时,就会出现问题。

foreach (Word.Field field in this.Application.ActiveDocument.Fields)
        {
            field.Update();
            text = field.Result.Text;

        }

上述代码不起作用。

这个过程开始了,但是在无限循环或其他一些挂起系统的过程中结束。

考虑到这一点,我可以推测,当你更新字段时,它可能会对字段集合产生影响 - 因此,循环失败。

有没有人对实施这个有什么想法?

P.S。我知道有一个Document.UpdateFields()方法来更新所有字段。但是,我有理由不能使用它,只需要更新特定的字段类型。

道歉!我打算给出一个嵌套字段的例子,但是在发送任何人(杰克)进行追逐之前,他试图再测试一些。

我等待并等待,等了好2或3分钟后,它结束了。在最后一个字段之后,它崩溃了这条消息:

对象已被删除。

错误是从循环内的以下行生成的:

string text = field.Code.Text;

模板正在未找到的合并域上进行测试,因为我在没有数据库连接的情况下进行测试。它是奇怪的,但可以解释的是,它遍历所有字段,然后,在一天结束时,OUTER IF字段的结果是“错误!未找到参考源”。但我仍然不明白为什么会发生这种情况。

我也不明白为什么循环需要3分钟,而对document.Fields.Update()的调用会在大约1秒内完成相同的操作而不会导致上述错误。

再次,我道歉。我从不认为在循环内更新会比调用doc.fields.update()要慢很多。

0 个答案:

没有答案