C# 文档。关闭使Word可见

C# 文档。关闭使Word可见,c#,ms-word,office-interop,C#,Ms Word,Office Interop,我一直在尝试解决这个问题,已经有相当长的时间了,但还没有找到一个。 调用Documents.Close()时,使用visible=false打开的Word变为可见 这是我的关闭语句(文档已保存,无需再次保存): 你可以直接调用WordApp.Quit() Office应用程序仍然遵循MDI方法:您运行一个应用程序,在该应用程序中可以打开一个或多个文档 由于我们通常只打开一个文档,所以很容易在后台失去对该应用程序的跟踪。但这里有两个层次的密切关系 你可以直接调用WordApp.Quit() Off

我一直在尝试解决这个问题,已经有相当长的时间了,但还没有找到一个。 调用
Documents.Close()
时,使用
visible=false打开的Word变为可见

这是我的关闭语句(文档已保存,无需再次保存):


你可以直接调用
WordApp.Quit()

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


由于我们通常只打开一个文档,所以很容易在后台失去对该应用程序的跟踪。但这里有两个层次的密切关系

你可以直接调用
WordApp.Quit()

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


由于我们通常只打开一个文档,所以很容易在后台失去对该应用程序的跟踪。但这里有两个层次的密切关系

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


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

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

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

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

WordApp.ScreenUpdating = false 
在调用Documents.Close()之前,这也没有帮助-我仍然得到了屏幕闪光灯

然后我试着设置

WordApp.ActiveWindow.Visible = false 
WordApp.ActiveWindow.Top = -5000 
打开文档后立即执行。这也没有任何区别

最后,我试着设置

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

一个恼人的黑客攻击,但在我的情况下奏效。

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

WordApp.ScreenUpdating = false 
在调用Documents.Close()之前,这也没有帮助-我仍然得到了屏幕闪光灯

然后我试着设置

WordApp.ActiveWindow.Visible = false 
WordApp.ActiveWindow.Top = -5000 
打开文档后立即执行。这也没有任何区别

最后,我试着设置

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


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

以上评论对我都不起作用。我试过:

WordApp.ActiveWindow.Top=-5000

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

我在调用
Document.Close()之前通过以下调用最终解决了这个问题:

m_word.ActiveWindow.WindowState=WdWindowState.WdWindowState


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

以上评论对我都不起作用。我试过:

WordApp.ActiveWindow.Top=-5000

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

我在调用
Document.Close()之前通过以下调用最终解决了这个问题:

m_word.ActiveWindow.WindowState=WdWindowState.WdWindowState


这对我来说是个完美的解决方案。希望它也适用于您。

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

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

以上解决方案都不适合我

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


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

上述解决方案对我都不起作用

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

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