访问IRibbonExtensibility类中的另一个功能区元素

时间:2013-08-28 12:11:02

标签: c# vsto

我有一个项目,我正在使用Office.IRibbonExtensibility继承。我遇到的问题是我的项目要求我在功能区上按下按钮时“取消选中”复选框。 据我所知,只有您当前选择的控件可以通过按钮处理程序的Office.IRibbonControl属性在代码中访问。 所以我的问题是,如何在基于XML的VSTO项目中的按钮单击事件中访问我的checkbox元素?

1 个答案:

答案 0 :(得分:1)

试试此代码

<强> Ribbon.xml

<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabAddIns">
              <group id="group1" label="group1">
                <button id ="btnTest" size="large" label="TestButton" onAction="btnTest_Click"/>
                <checkBox id ="chkTest" label="TestCheckbox" getPressed="chkTest_pressed" />
              </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

<强> Ribbon.cs

private bool isChecked = false;
public void btnTest_Click(IRibbonControl ribbon)
{
    isChecked = true;
    this.ribbon.Invalidate();
}
public bool chkTest_pressed(IRibbonControl ribbon)
{
    return isChecked;
}