C# 字互操作。 ((DocumentEvents_Event)document).关闭文档时不触发关闭
C# Word Interop. ((DocumentEvents_Event)document).Close is not firing when document is closed
如标题所述:((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 文档。我尝试了 5 次中有 3 次有效,并且 OnDocumentClosed()
被调用。有谁知道我做错了什么?我需要它工作 5 次中的 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()
{
...
}
如标题所述:((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 文档。我尝试了 5 次中有 3 次有效,并且 OnDocumentClosed()
被调用。有谁知道我做错了什么?我需要它工作 5 次中的 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()
{
...
}