C #, Word 2003 надстройка и событие кнопки панели инструментов - PullRequest
3 голосов
/ 21 января 2010

Я пытаюсь написать надстройку уровня приложения для Word 2003. Плагин добавляет кнопку на новой панели команд - нажатие на кнопку сохраняет активный документ, а затем выполняет некоторые дополнительные действия. Когда я запускаю Word 2003, а затем нажимаю кнопку командной строки, все работает нормально. Однако, если я запускаю Word 2003, откройте новое окно Word, нажав кнопку на панели инструментов «Новый документ» на «стандартной» панели инструментов, а затем нажмите кнопку моей панели команд, и окажется, что никаких действий не выполняется. Кажется, что моей кнопке на панели инструментов в новом открытом окне не назначен обработчик события «onclick». У вас есть идеи, как решить проблему?
Мой код надстройки основан на коде ниже:

private Office.CommandBar commandBar;
private Office.CommandBarButton docSaveButton;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
  // prepare toolbar:
  try
  {
    commandBar = Application.CommandBars["MY_TOOLBAR"];
  }
  catch (ArgumentException)
  {
    //...
  }

  if (commandBar == null)
  {
    commandBar = Application.CommandBars.Add("MY_TOOLBAR", 1, missing, true);
  }
  commandBar.Visible = true;

  // addbutton: 
  docSaveButton = (Office.CommandBarButton)commandBar.Controls.Add(1, missing, missing, missing, missing);
  docSaveButton.Style = Microsoft.Office.Core.MsoButtonStyle.msoButtonIcon;
  docSaveButton.Caption = "My save";
  docSaveButton.Click += new Office._CommandBarButtonEvents_ClickEventHandler(docSaveButtonClick);
}

private void docSaveButtonClick(Office.CommandBarButton ctrl, ref bool cancel)
{
  MessageBox.Show("Hello !", "Hello !", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

С уважением Jank

Ответы [ 3 ]

1 голос
/ 05 марта 2010

Я подозреваю, что ваша надстройка не загружена, но ваша панель инструментов сохраняется. Разместили ли вы свою надстройку в одном из мест запуска Word?

Часто задаваемые вопросы о расположении шаблонов в Word 2003 или Word 2007, Вопрос 3. Где хранятся файлы надстроек Word ?, http://support.microsoft.com/kb/826867.

Загрузка надстройки Word, вторая пуля, http://msdn.microsoft.com/en-us/library/aa165426(office.10).aspx

• Автоматически при запуске Word сохранение файла шаблона в Word Папка автозагрузки на вашем компьютере. путь по умолчанию к этой папке C: \ Windows \ Application Data \ Microsoft \ Word \ Startup; если вы используя профили пользователей, путь по умолчанию является C: \ Windows \ Profiles \ имя_пользователя \ Application Data \ Microsoft \ Word \ Startup. Вы можете изменить этот путь в диалоге параметров коробка

0 голосов
/ 19 марта 2013

Я столкнулся с той же проблемой и решил ее, установив свойство Tag на кнопках. Это по замыслу кажется.

http://support.microsoft.com/kb/826931

0 голосов
/ 22 января 2010

Я не сделал этого в Word, но я верю, что в Outlook он заработал, прослушивая события NewWindow (называемые проводниками и инспекторами в Outlook) и повторно добавляя кнопку при создании нового окна (и используя «true» в качестве последнего параметра в commandBar.Controls.Добавьте кнопку «временной», чтобы в итоге не было двух из них).

P.S. Я согласен, что это должно работать так, как вы ожидаете, и не уверен, зачем это нужно (или как оно должно работать, если «temp» равно «false»).

...