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