首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel VSTO -在单元格编辑期间禁用RibbonButton

Excel VSTO -在单元格编辑期间禁用RibbonButton
EN

Stack Overflow用户
提问于 2010-12-10 00:47:58
回答 2查看 2.5K关注 0票数 2

我正在编写一个Excel插件,希望我的功能区按钮被禁用时,用户被单击到(编辑)一个单元格。我看到在Excel和TFS Excel插件中的其他功能区按钮会发生这种情况,所以我希望有其他开发人员可以完成它的方法。是否有某种方法可以确定/处理编辑何时开始/结束(例如,通过双击/按Enter/按Escape)?

我在想,我可以在这些事件期间手动启用/禁用按钮。我想知道这里描述的技术http://www.codeproject.com/KB/office/Excel_Edit_Mode.aspx是否是检测当前单元格是否正在被编辑的最佳方法?

任何指导都将不胜感激。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-04-08 02:02:37

很抱歉回答得太晚了。我正好碰到你的问题。

我想在我的项目中使用相同的行为,并且我成功地集成了这个解决方案:

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

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

希望这对(你或其他人)有帮助

票数 3
EN

Stack Overflow用户

发布于 2011-02-24 07:01:36

以下是我为实现与您相同的目标所做的工作。

我在定时器的事件处理程序中创建了一个设置为500ms的定时器,并执行以下检查

代码语言:javascript
运行
复制
if (Globals.ThisAddIn.Application.Ready)
{
     SetRibbonState()
}

其中SetRibbonState类似于:

代码语言:javascript
运行
复制
private void SetRibbonState()
{ 
     if (IsEditing())
     {
          buttonRefresh.Enabled = false;
     }
     else
     {
          buttonRefresh.Enabled = true;
     }
}

public static bool IsEditing()
{
    return !Globals.ThisAddIn.Application.CommandBars.GetEnabledMso(FileNewDefaultIdMso);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4400825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档