正如标题所说。((DocumentEvents_Event)document).Close
在关闭word文档的时候没有被烧毁。
var wordApp = new Microsoft.Office.Interop.Word.Application();
var document = wordApp.Documents.Open(pathToDocument);
...
document.Activate();
wordApp.Visible = true;
wordApp.Activate();
((DocumentEvents_Event)document).Close += OnDocumentClosed;
...
private void OnDocumentClosed()
{
...
}
我通过关闭Word本身来关闭word文档。它的工作原理3的5倍,我尝试和。OnDocumentClosed()
是叫。有人知道我做错了什么吗?我需要它工作5次。我使用 Word 2016.
先谢谢你了!
问候。
帕子
首先,你需要确保源对象是活的。为了实现这一点,你需要在全局范围内声明源对象,这样它就不会被垃圾收集器刷掉。
// declare at the class level
var wordApp = new Microsoft.Office.Interop.Word.Application();
var document = wordApp.Documents.Open(pathToDocument);
// somewhere in the code
document.Activate();
wordApp.Visible = true;
wordApp.Activate();
((DocumentEvents_Event)document).Close += OnDocumentClosed;
// event handler
private void OnDocumentClosed()
{
...
}