2

很长一段时间以来,我一直在尝试解决此问题,但尚未找到解决方法。在调用Documents.Close()时,使用 打开的 Wordvisible = false变为可见。

这是我的关闭声明(文档已经保存,因此无需再次保存):

    WordApp.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges,
    Word.WdOriginalFormat.wdOriginalDocumentFormat);
4

6 回答 6

3

你可以打电话WordApp.Quit()

Office 应用程序仍然遵循 MDI 方法:您运行 1 个应用程序,并且在该应用程序中您可以打开 1 个或多个文档。

由于我们通常只打开一个文档,因此很容易在后台忘记该应用程序。但是这里有两个关闭级别。

于 2012-04-15T19:57:23.310 回答
1

您也可以WordApp.Visible = false在操作后立即显式设置;这可能会导致短暂的闪烁,但应将应用程序设置回不可见状态。

为了避免短暂的可见性,有时也使用该WordApp.ScreenUpdating属性会有所帮助。在尝试Documents.Close()调用之前将其设置为 false,然后在调用完成后重置为 true。

于 2012-05-08T19:32:05.267 回答
0

接受的解决方案(调用 WordApp.Quit())对我来说不是一个可行的选择。我试过设置

WordApp.ScreenUpdating = false 

在调用 Documents.Close() 之前,这也无济于事 - 我仍然得到屏幕闪烁。

然后我尝试设置

WordApp.ActiveWindow.Visible = false 

打开文档后立即。这也没有任何区别。

最后我尝试设置

WordApp.ActiveWindow.Top = -5000 

(以便在我的显示器设置中将窗口显示移出可见的桌面区域 - 如果您有一个可能不适合您的不寻常(巨大!)显示器设置,请进行相应调整)并且解决了问题 - 不再闪烁.

一个烦人的黑客,但在我的情况下有效。

于 2016-05-20T12:01:19.807 回答
0

以上评论都不适合我。我试过:

WordApp.ActiveWindow.Top = -5000

但是我的程序以“活动窗口最大化”异常终止。

我最终通过在调用之前的调用解决了它Document.Close()

m_word.ActiveWindow.WindowState = WdWindowState.wdWindowStateMinimize;

这对我来说是一个完美的解决方案。希望它也对你有用。

于 2016-10-12T15:40:29.293 回答
0

使用 ActiveDocument.Close() 方法将不会显示窗口。 WordApp.ActiveDocument.Close(saveChanges: false);

于 2018-03-24T00:50:53.087 回答
0

以上解决方案都不适合我。

我终于意识到问题出在 AutoOpen 宏上。每次打开 Word 文档时,AutoOpen 都会使 ActiveDocument.Visible = False,运行一些更改(如打开样式窗格),然后ActiveDocument.Visible = True在最后打开。

AutoOpen 中的最后一行是导致每个文档在屏幕上短暂闪烁的原因。从 AutoOpen 宏中删除两者完全解决了这个Visible = False问题。Visible = True

于 2021-05-11T23:58:33.407 回答