Excel VSTO – 在单元编辑期间禁用RibbonButton

我正在编写一个Excel添加,并希望我的function区button被禁用,当用户点击(编辑)单元格。 我发现在Excel中的其他function区button和TFS Excel中添加了这个function,所以我希望有其他开发人员可以实现的方式。 是否有某种方式来确定/处理编辑开始/结束时(即通过双击/按Enter /击退)?

我想我可以在这些事件中手动启用/禁用button。 我想知道这里描述的技术http://www.codeproject.com/KB/office/Excel_Edit_Mode.aspx是检测一个单元格是否正在编辑的最好方法吗?

任何指导将不胜感激。

谢谢

抱歉回复晚了。 我刚刚遇到你的问题。

我想要在我的项目中的相同的行为,我成功地集成了这个解决scheme:

http://www.codeproject.com/KB/office/ExcelInEditMode.aspx

这是无痛的,工作得很好。 我只是在我的项目中添加了类,创build了它的一个实例,并将事件附加到EditModeOff和EditModeOn事件。

希望帮助(你或别人)

这就是我为完成同样的目标所做的。

我创build了一个定时器设置为500毫秒在定时器的事件处理程序,我执行以下检查

if (Globals.ThisAddIn.Application.Ready) { SetRibbonState() } 

SetRibbonState就像这样:

 private void SetRibbonState() { if (IsEditing()) { buttonRefresh.Enabled = false; } else { buttonRefresh.Enabled = true; } } public static bool IsEditing() { return !Globals.ThisAddIn.Application.CommandBars.GetEnabledMso(FileNewDefaultIdMso); }