我正在编写Excel加入项,并希望在用户单击(编辑)单元格时禁用我的功能区按钮。我发现这种情况发生在Excel和TFS Excel中的其他功能区按钮中,因此我希望其他开发人员可以通过某种方式实现它。是否有某种方法来确定/处理编辑开始/结束的时间(即通过双击/点击进入/击中逃脱)?
我以为我可以在这些活动期间手动启用/禁用按钮。我想知道这里描述的技术http://www.codeproject.com/KB/office/Excel_Edit_Mode.aspx是否是检测当前是否正在编辑单元格的最佳方法?
非常感谢任何指导。
由于
答案 0 :(得分:2)
以下是我为实现与您一样的目标所做的工作。
我创建了一个500毫秒的定时器 在Timer的事件处理程序中,我执行以下检查
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);
}
答案 1 :(得分:2)
对不起,迟到了。我刚刚遇到了你的问题。
我想在我的项目中采用相同的行为,并且我成功地整合了这个解决方案:
http://www.codeproject.com/KB/office/ExcelInEditMode.aspx
这是无痛的,而且效果很好。我刚刚在我的项目中添加了该类,创建了它的实例并将事件附加到EditModeOff和EditModeOn事件。
希望有帮助(你或其他人)