Получить статус флажка в Outlook Backstage?

С 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 в этот момент?


person wes    schedule 27.06.2011    source источник


Ответы (1)


Проверьте этот ответ: Как получить доступ к закулисным значение флажка в надстройке Office?

ps: я нашел ваш вопрос после того, как написал свой :)

person epzee    schedule 08.11.2011