Documents.Close使Word可见

问题描述 投票:2回答:5

很长一段时间以来,我一直在尝试解决这个问题,但还没找到。在调用Documents.Close()时,用visible = false打开的Word变得可见。

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

    WordApp.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges,
    Word.WdOriginalFormat.wdOriginalDocumentFormat);
c# ms-word office-interop
5个回答
2
投票

你可以打电话给WordApp.Quit()

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

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


1
投票

您还可以在操作后立即明确设置WordApp.Visible = false;这可能会导致短暂闪烁,但应将应用程序设置为不可见。

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


0
投票

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

WordApp.ScreenUpdating = false 

在调用Documents.Close()之前,它也没有帮助 - 我仍然屏幕闪烁。

然后我尝试了设置

WordApp.ActiveWindow.Visible = false 

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

最后我尝试了设置

WordApp.ActiveWindow.Top = -5000 

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

一个恼人的黑客,但在我的情况下工作。


0
投票

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

WordApp.ActiveWindow.Top = -5000

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

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

m_word.ActiveWindow.WindowState = WdWindowState.wdWindowStateMinimize;

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.