Excel.Application.SelectionChange仅触发一次
我只收到第一个事件通知,之后什么也没有发生。 有什么想法吗?Excel.Application.SelectionChange仅触发一次,excel,vsto,ms-office,add-in,Excel,Vsto,Ms Office,Add In,我只收到第一个事件通知,之后什么也没有发生。 有什么想法吗? UPD:我发现了一件奇怪的事情。我的事件处理程序代码如下所示: var cell = range.Cells[1, 1]; var rangeName = cell.Address[false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing]; 我以这种方式对其进行了更改,添加了显式类型
UPD:我发现了一件奇怪的事情。我的事件处理程序代码如下所示:
var cell = range.Cells[1, 1];
var rangeName = cell.Address[false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing];
我以这种方式对其进行了更改,添加了显式类型转换:
var cell = (Range)range.Cells[1, 1];
var rangeName = cell.Address[false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing];
现在,我的事件处理程序被调用了好几次,然后才停止调用。由于COM Interop跟踪事件处理程序的方式,垃圾收集器可以清除阻止您接收事件的RCW 确保保留对具有事件处理程序的对象的引用,例如,不要写入:
Application.CurrentWorkbook.SelectionChanged += ....
写
class ThisAddin
{
WorkBook _workbook;
void AddinLoaded()
{
_workbook.SelectionChanged += ....
}
}