“ ScreenUpdating = False”不适用于页眉/页脚

汉克天蝎座

我正在使用VSTO(在VB中)构建Word加载项,但有一个很烦人的问题。我想在删除文档的每个故事中的所有内容控件时关闭ScreenUpdating。因此,我执行以下操作:

Application.ScreenUpdating = False

 'loop through all open documents
For Each thisDoc As Word.Document In gbl_docList

   'loop through all stories in each doc
    For Each thisStoryRange As Word.Range In thisDoc.StoryRanges 

        thisDoc.Activate() 'active this doc so we can work on it
        thisStoryRange.Select() 'select the range

        'remove all Content Controls
        For Each thisCC As Microsoft.Office.Interop.Word.ContentControl In thisStoryRange.ContentControls
            thisCC.Delete() 'remove this CC
        Next 'next CC

    Next 'next story

Next 'next doc

Application.ScreenUpdating = True

但是,每当Word循环浏览“页眉”或“页脚”故事时,它就会开始打开屏幕底部的面板并将其显示给用户,这会导致尴尬的闪烁。如果没有页眉/页脚,那么一切将正常进行。

问题:

  1. 有没有人遇到这个问题?有什么建议么?

  2. 作为替代解决方案,是否有任何方法可以最小化/隐藏Word中的Word文档,但保持Word窗口处于打开状态?我只能找到最小化/隐藏所有Word的方法。

马丁·斯坦姆(Maarten van Stam)

我可以确认,尤其是在Office的更高版本中,ScreenUpdating设置无法以各种方式起作用(您会注意到,Ribbon Controls会根据程序中的所选文本或从您所做的操作,将其例如从“粗体”更新为“正常”)。处理页眉/页脚时)

我在2014年以这种方式报告了此问题,并将其提供给Office团队,但(据我所知)从未解决。我的存档中仍然包含带有repro的邮件,甚至还有带有该邮件的视频。该副本基于以下演示代码:

https://msdn.microsoft.com/zh-CN/library/office/ff197438(v=office.15).aspx

唯一的选择是要么在处理前最小化MS Word并在完成后恢复其大小,要么使MS Word完全不可见(如果正在处理,则可以显示对话框,如果这是一项耗时的功能,则可以进行一些进度),并在完成后恢复可见性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章