Я делаю надстройку Excel COM. Теперь я хочу управлять событием WorkbookBeforeClose.
Но решение, которое я нашел в Stackoverflow (c# с использованием обработчика событий WorkbookOpen) не работает для меня.
В моей надстройке нет раздела InternalStartup, есть только раздел загрузки.
Я могу запустить обработчик событий только с помощью нажатие кнопки на панели ленты.
Когда я нажимаю кнопку 1 раз, обработчик событий делает то, что я хочу, все время загружается Excel.
Когда Excel закрывается и перезагружается, я должен снова нажать кнопку.
есть способ, которым обработчик событий запускается, когда Excel загружает первую пустую книгу???
Есть ли какая-то помощь или какое-либо решение для меня???
Спасибо и с уважением
Стефан
Вот мой код, который я использую для 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");
}