【问题标题】:VSTO Excel: Detect Last row of ListObject DeletedVSTO Excel:检测 ListObject 的最后一行已删除
【发布时间】:2013-03-27 17:06:31
【问题描述】:

所以我正在开发一个 VSTO Excel 应用程序,需要检测用户何时删除了 ListObject。

例如在 Excel 中给出这样的表格

还有一些这样的代码

this.listObject.Change += (s,e) =>
{
   Debug.Print("Changed!);
};

删除最后一行时不会触发 ListObject.Change 事件!

有没有办法检测 ListObject 最后一行被删除,或者 ListObject 本身从 Worksheet 中删除?

【问题讨论】:

    标签: c# excel vsto


    【解决方案1】:

    澄清一下:您是要删除整个电子表格行还是只删除表格行?从屏幕截图中,您似乎选择了整行。尝试只选择表格的一行(不是表格行之外的其他空单元格),然后右键单击 -> 删除 -> 删除行。这会触发您的活动吗?

    您还可以在 Worksheet 上捕获 Change 事件并检查该行是否包含任何 ListObject 数据。

    【讨论】:

    • 您好,如果您只选择表行并选择删除,则不会引发 ListObject.Change。不过,我确实找到了一种解决方法,如果我订阅 Worksheet.SelectionChanged (唯一始终触发的事件)并检查 ListObject.DataBodyRange = null 那么我知道表的主体已被删除。同样 ListObject.HeaderBodyRange = null 检测整个表是否已被删除。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-07-20
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多