使用Outlook 2010:如果我在XML中为后台加载了一个复选框,那么如何查询该元素并使用C#获取其状态?以下是后台XML的示例:
<?xml version="1.0" encoding="utf-8"?>
<customUI onLoad="Ribbon_Load"
xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<backstage>
<tab id="MyBackstageTab"
getVisible="MyBackstageTab_GetVisible">
<firstColumn>
<group id="RegularGroup">
<bottomItems>
<groupBox id="GeneralGroupBox">
<!-- This works fine; onAction is called every click. -->
<button id="ApplyButton"
label="Apply"
onAction="ButtonAction"/>
<!-- Neither onAction or getPressed functions are called
when interacting with the checkbox on the form. -->
<checkBox id="AddInEnabled"
label="Enable AddIn"
onAction="CheckBoxAction"
getPressed="CheckBoxPressed"/>
</groupBox>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
...这里是MyRibbon.cs
:
namespace MyAddIn {
[ComVisible(true)]
public class MyRibbon : Office.IRibbonExtensibility {
// constructors, etc...
public void ButtonAction(Office.IRibbonControl control) {
System.Windows.Forms.MessageBox.Show(
"ButtonAction: " + control.Id);
}
// Never gets called.
public void CheckBoxAction(Office.IRibbonControl control) {
System.Windows.Forms.MessageBox.Show(
"CheckBoxAction: " + control.Id);
}
// Never gets called.
public void CheckBoxPressed(Office.IRibbonControl control) {
System.Windows.Forms.MessageBox.Show(
"CheckBoxPressed: " + control.Id);
}
}
}
我的想法是在MyRibbon
类中记录每个元素的状态,因为当用户与表单交互时会触发事件。但是,由于某些内容(例如上面示例中的checkbox
)似乎没有触发任何可用的事件,我需要一些其他方法来查询此类中的后台。
所以,如果我有一个 Apply 按钮,它会在某处保存表单状态(代表AddIn设置):我可以对点击的按钮做出反应,但我怎样才能得到{{1}那时的状态?
答案 0 :(得分:0)
检查此答案:How to access backstage checkbox value in an Office addin?
ps:我写完后发现了你的问题:)