很长一段时间以来,我一直在尝试解决这个问题,但还没找到。在调用Documents.Close()
时,用visible = false
打开的Word变得可见。
这是我的密切声明(文档已经保存,因此无需再次保存):
WordApp.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges,
Word.WdOriginalFormat.wdOriginalDocumentFormat);
你可以打电话给WordApp.Quit()
。
Office应用程序仍然遵循MDI方法:您运行1个应用程序,在该应用程序中,您可以打开1个或多个文档。
由于我们通常只打开一个文档,因此很容易在后台丢失对该应用程序的跟踪。但这里有两个关闭级别。
您还可以在操作后立即明确设置WordApp.Visible = false
;这可能会导致短暂闪烁,但应将应用程序设置为不可见。
为了避免短暂的可见度,有时使用WordApp.ScreenUpdating
属性也可以提供帮助。在尝试Documents.Close()
调用之前将其设置为false,然后在完成后重置为true。
接受的解决方案(调用WordApp.Quit())对我来说不是一个可行的选择。我尝试过设置
WordApp.ScreenUpdating = false
在调用Documents.Close()之前,它也没有帮助 - 我仍然屏幕闪烁。
然后我尝试了设置
WordApp.ActiveWindow.Visible = false
打开文件后立即。这也没有任何区别。
最后我尝试了设置
WordApp.ActiveWindow.Top = -5000
(以便在我的显示器设置中将窗口显示器移出可见的桌面区域 - 如果你有一个不寻常的(巨型!)显示器设置可能不适合你,请相应调整)并解决了问题 - 不再闪烁。
一个恼人的黑客,但在我的情况下工作。
以上评论都不适合我。我尝试过:
WordApp.ActiveWindow.Top = -5000
但我的程序以“活动窗口最大化”异常终止。
我最终在调用Document.Close()
之前通过调用解决了它:
m_word.ActiveWindow.WindowState = WdWindowState.wdWindowStateMinimize;
这对我来说是一个完美的解决方案。希望它对你也有用。
使用ActiveDocument.Close()方法将不会显示该窗口。 WordApp.ActiveDocument.Close(saveChanges: false);