当保存被驳回时引发documentbeforeaveeventhandler事件
本文关键字:documentbeforeaveeventhandler 事件 保存 | 更新日期: 2023-09-27 18:15:01
在为office编写外接程序时,我必须为DocumentBeforeSave
事件定义一个事件处理程序。
这个处理程序工作正常,除了一个异常。这个异常来自以下语句:
- 我打开一个word文档并编辑一些文本。我点击关闭按钮。
- Word问我是否要
save
,don't save
或cancel
。 - 我选择
don't save
.
按照这些步骤,office仍然在documentbeforeave事件中强制我。没有办法确定用户是否打算取消他的保存。
是否有一种方法来检查用户是否选择保存,如果是,如何检查?到目前为止,MSDN和其他来源都是空的。
注意:在office 2013及以上版本中,此功能应该由Doc.IsInAutosave
检查,遗憾的是,此功能在office 2007和office 2010中不存在
根据您的问题,您希望仅在文档实际保存的情况下运行一些代码。
一个常见的解决方案是拦截实际的保存命令,而不是为DocumentBeforeSave
事件注册一个事件处理程序(如您所述,如果实际的保存操作从未发生,也会触发该事件处理程序)。
如何做到这一点在我的回答中有描述。注意,您必须在Ribbon XML中定义自定义保存命令,然后将保存期间运行的代码放在相应的Ribbon回调函数中。