С 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
в моем примере выше), похоже, не вызывают каких-либо пригодных для использования событий, мне нужен другой способ запроса за кулисами из этого класса.
Итак, если у меня есть кнопка Применить, которая где-то сохранит состояние формы (представляющее настройки надстройки): я могу отреагировать на нажатие этой кнопки, но как я могу также получить состояние checkbox
в этот момент?