如何在closuresExcel工作簿后捕获用户操作

当用户尝试closuresExcel工作簿时,我想捕捉“不保存”button单击保存对话框,但是存在未保存的更改。

我的情况是:用户打开excel文件,改变文件中的某些东西,点击closuresbutton,Excel应用程序将显示“你想保存更改”对话框,我想处理的情况下,当用户select否或取消。 我不想切换屏幕,并在我的应用程序中显示给用户自己的对话框,用户将不会很高兴的解决scheme。 如果有办法处理这个请让我知道。

这是我的代码:

_xlsApp = new Excel.Application(); _xlsApp.WorkbookBeforeClose += new Excel.AppEvents_WorkbookBeforeCloseEventHandler(xlsApp_WorkbookBeforeClose); _xlsApp.WorkbookBeforeSave += new Excel.AppEvents_WorkbookBeforeSaveEventHandler(xlsApp_WorkbookBeforeSave); 

海事组织你需要覆盖默认的保存/不保存更改事件与自定义之一。

在你之前保存事件处理程序中:

  • 使用Workbook.Saved属性检查工作簿是否有任何未保存的更改
  • 如果是的话,那么显示一个自定义有未保存的更改 – 保存或放弃对话框,并获取用户的回应是/否 ( 本文中的示例 )
  • 您始终可以取消保存事件 – 显示如何取消的BeforeSave事件的MSDN文档
  • 或使用Workbook.Save方法保存更改

这样做的决定留给用户(默认情况下,从用户的angular度来看没有任何变化),但是您仍然可以在保存工作簿之前或之后执行任何您想要执行的操作。

如果用户closures应用程序,excel将在closures事件之前先执行 。 你有两个select: – 在这里检查是否有任何变化,并询问用户并保存答案,并在之前的保存事件中使用答案 – 或者跳过这个事件 – 如果有未保存的更改,Excel将以任一方式进入在保存事件之前 ,您可以按照上图所示进行操作; 来自MSDN If the workbook has been changed, this event occurs before the user is asked to save changes.