如何拦截单击内置的Office功能区控件

时间:2014-01-16 20:23:43

标签: c# excel add-in excel-addins

我想知道是否可以检测用户何时单击了Excel中的页眉/页脚按钮,这样我就可以在我的加载项选项卡上显示一些自定义页眉/页脚相关的功能区控件,并在用户不显示时隐藏它们在页眉/页脚编辑模式中。

是否有可能以某种方式劫持此按钮?我见过应用程序劫持了Excel Save。我正在寻找与页眉/页脚按钮类似的行为。

我正在使用C#,Visual Studio 2012和Excel 2010.我使用Ribbon XML方法创建了自定义功能区。

1 个答案:

答案 0 :(得分:5)

我发现的一种方法是使用功能区XML中的<commands>部分(我不知道它存在。)显然,这种机制允许您重新使用Excel固有的操作但要注意并非所有控件都支持重新使用onAction回调)

<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <commands>
        <command idMso="HeaderFooterInsert" onAction="testHeaderFooter"/>
    </commands>
  <ribbon>
    <tabs>...

以及相关的事件处理程序:

    public void testHeaderFooter(Office.IRibbonControl control, bool cancelDefault)
    {
        MessageBox.Show("Testing.");
        cancelDefault = false;
    }

此链接非常有用:

http://social.msdn.microsoft.com/Forums/office/en-US/e1a60d16-053e-4697-b17c-b22d602f0400/intercept-the-onaction-event-of-a-gallery-element-of-excel-2007-ui-ribbon?forum=vsto