【问题标题】:"ScreenUpdating = False" Not Working for Headers/Footers“ScreenUpdating = False”不适用于页眉/页脚
【发布时间】:2016-10-12 14:13:19
【问题描述】:

我正在使用 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 的方法。

【问题讨论】:

    标签: .net vb.net ms-word vsto add-in


    【解决方案1】:

    我可以确认,尤其是在更高版本的 Office 中,ScreenUpdating 设置无法以各种方式工作(您会注意到,功能区控件不断更新,例如,根据您在程序中选择的文本从粗体更新为正常,或者就像你在处理页眉/页脚时所做的那样)

    我早在 2014 年就以这种方式报告过,它已提供给 Office 团队,但(据我所知)从未解决。我的存档中仍然有带有复制品的邮件,甚至还有带有它的视频。重现基于此演示代码:

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

    唯一的选择是在处理之前最小化 MS Word 并在完成后恢复其大小,或者使 MS Word 完全不可见(如果这是一项耗时的功能,您可以在处理时显示一个对话框并获得一些进度)并在以下情况下恢复可见性完成。

    【讨论】:

      猜你喜欢
      • 2016-03-05
      • 2016-04-12
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 1970-01-01
      相关资源
      最近更新 更多