Включить / отключить кнопки ленты в надстройке Word 2007 - PullRequest
2 голосов
/ 25 апреля 2011

В настоящее время я работаю над словом Addin, где я динамически добавил элементы управления на ленту. Теперь мне нужно поймать динамическую кнопку "btnSubmit" и исходя из условия, мне нужно включить / отключить кнопку.

при первом открытии документа его следует включить, а после нажатия кнопки он должен быть отключен.

Это должно быть сделано при логических условиях. Любая помощь будет принята с благодарностью.

спасибо, КСР Прасад

Ответы [ 3 ]

1 голос
/ 29 сентября 2012

Это возможно через RibbonXML, используя событие getEnabled.

Лента XML:

<button id="button1" onAction="button1_Click" getEnabled="button1_EnabledChanged" />

Код:

public void button1_Click(Office.IRibbonControl control)
{
    if (control.Id == "button1")
    {
        // your code
        clicked = true; // a boolean variable
    }
}

public bool button1_EnabledChanged(Office.IRibbonControl control)
{
    if (control.Id == "button1")
        return !clicked;
}
0 голосов
/ 15 мая 2011

Я предпочитаю использовать этот тип проблем, а не RibbonXml, а не дизайнер.

Очень простой вариант - иметь словарь, который затем можно сохранить в классе обратного вызова на ленте. Если вам нужен более приятный вариант, VSTO Contrib (http://vstocontrib.codeplex.com/) позволяет довольно легко создать «viewmodel» для каждого документа, тогда вы можете просто привязать активированную кнопку к свойству viewmodel.

Подробнее о ленте xml: http://jake.ginnivan.net/vsto-ribbon-designer-in-depth
Больше информации о vsto contrib и как это может помочь вам: http://jake.ginnivan.net/vsto-contrib/ribbon-factory

Приветствия
Джейк

0 голосов
/ 25 апреля 2011

Если вы уже создали кнопку, просто создайте переменную WITHEVENTS региональной области действия для ее удержания, назначьте ее, а затем отреагируйте на событие click, чтобы отключить кнопку (объект кнопки имеет свойство enabled).

Private WithEvents _MyButton As Ribbon.RibbonButton
....
Set _MyButton = {the just created button}

затем обработайте событие щелчка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...