Microsoft Word AddIn DocumentBeforeSave应用程序事件触发两次
本文关键字:两次 AddIn Word DocumentBeforeSave 应用程序 事件 Microsoft | 更新日期: 2023-09-27 17:51:20
我在做这个Word的微软应用程序加载项。我有beforeavedocument事件触发两次。有没有一种方法可以只看一次?
这是AddIn_startup.
((Word.ApplicationEvents4_Event)app).DocumentBeforeSave += new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler(App_BeforeSaveDocument);
这是beforeavedocument事件处理程序,我有2个其他方法从Word中提取段落,然后发送套接字消息。此方法在Word保存事件发生时触发两次,
void App_BeforeSaveDocument(Word.Document document, ref bool saveAsUI, ref bool cancel)
{
extractParagraphInfo();
handleMessage();
}
我在自己的代码中查看了一下,看看事件是否触发了两次,但似乎没有。您可能需要确定事件再次触发的位置。同时,您可以在event方法中设置一个标志来阻止它两次执行此操作。
private bool beforeSave = false;
void App_BeforeSaveDocument(Word.Document document, ref bool saveAsUI, ref bool cancel)
{
if(!beforeSave)
{
beforeSave = true;
extractParagraphInfo();
handleMessage();
}
else
{
beforeSave = false;
}
}
当然,这只会工作,如果它触发两次,你可以再次设置它。你最好的做法是找出为什么它会发射两次,并在源头修复它。