c#excel插件工作簿closures事件

我做一个Excel COM加载项。 现在我想要控制WorkbookBeforeClose事件。
但是,我发现在Stackoverflow( c#使用事件处理程序WorkbookOpen )的解决scheme不适合我。
在我的插件中没有InternalStartup Sektion,只有一个Load Sektion。
我只能通过按下我的function区栏中的button来启动事件处理程序。
当我按下button1x的事件处理程序做我想要所有的时间Excel加载。
当Excelclosures并重新启动时,我必须再次按下button。
有没有一种方式,事件处理程序启动时,Excel加载第一个空的工作簿?
有一些帮助或解决scheme吗?

感谢致敬
斯蒂芬

这里是我的代码,我使用的EventHandler:

public partial class Excel2SE { Excel.AppEvents_WorkbookBeforeCloseEventHandler EventDel_BeforeBookClose; private void Excel2SE_Load(object sender, RibbonUIEventArgs e) { EventDel_BeforeBookClose = new Excel.AppEvents_WorkbookBeforeCloseEventHandler(BeforeBookClose); } private void btn_Start_Click(object sender, RibbonControlEventArgs e) { wbEventhandlerStart(); } private void wbEventhandlerStart() { Excel.Application app = (Excel.Application)Marshal.GetActiveObject("Excel.Application"); app.WorkbookBeforeClose += EventDel_BeforeBookClose; } // This Works when Excel Close private void Excel2SE_Close(object sender, EventArgs e) { MessageBox.Show("Excel close"); } // This works after Pushing the Start Button and the Workbook Close private void BeforeBookClose(Excel.Workbook Wb, ref bool Cancel) { MessageBox.Show("WB close"); } 

这是一个Visual Studio Office加载项? 这听起来像是这样,如果是这样的检查ThisAddIn.cs为以下两种方法:

 private void ThisAddIn_Startup(object sender, EventArgs e) { } private void ThisAddIn_Shutdown(object sender, EventArgs e) { } 

您可以将要运行的代码添加到靠近ThisAddIn_Shutdown方法的位置。 没有办法确保这个代码能够运行,但是只有当用户正确地closures了Excel才能运行。 如果他们closures使用任务pipe理器等,所有的投注都closures。