【问题标题】:Word VSTO addin - Click event not firing?Word VSTO 插件 - 单击事件未触发?
【发布时间】:2015-08-15 22:04:43
【问题描述】:

我正在为 Word 编写我的第一个 VSTO 插件,我设法在“跟踪更改”上下文菜单中添加了一个按钮,但我无法让它调用我的点击处理程序。我可以在那里看到按钮,但是点击它什么都不做——我从来没有进入过ButtonClick,也没有例外。我尝试将Enabled 设置为true,将Visible 设置为true,但无济于事。

public partial class ThisAddIn
   {
      Word.Application application;
      string insertText = "INSERT!!";
      Office.CommandBarButton acceptButton;
      Office.CommandBar commandBar;

      private void ThisAddIn_Startup(object sender, System.EventArgs e)
      {
         application = this.Application;
         application.WindowBeforeRightClick +=
             new Word.ApplicationEvents4_WindowBeforeRightClickEventHandler(application_WindowBeforeRightClick);         

         application.DocumentOpen += 
             new Word.ApplicationEvents4_DocumentOpenEventHandler(WorkWithDocument);

         ((Word.ApplicationEvents4_Event)this.Application).NewDocument +=
             new Word.ApplicationEvents4_NewDocumentEventHandler(WorkWithDocument);

      }

      private void WorkWithDocument(Microsoft.Office.Interop.Word.Document Doc)
      {
         try
         {
            application.CustomizationContext = application.ActiveDocument;
            commandBar = application.CommandBars["Track Changes"];
            acceptButton = (Office.CommandBarButton)commandBar.Controls.Add(
                Office.MsoControlType.msoControlButton);
            acceptButton.accName = insertText;
            acceptButton.Caption = insertText;              
            acceptButton.Click += new Office._CommandBarButtonEvents_ClickEventHandler(ButtonClick);
         }
         catch (Exception ex)
         {
            Debug.Print(ex.StackTrace);

            // Handle exception if for some reason the document is not available.
         }
      }

      // Handles the event when a button on the new toolbar is clicked. 
      private void ButtonClick(Office.CommandBarButton ctrl, ref bool cancel)
      {
         try
         {
            Debug.Print("You clicked: " + ctrl.Caption);
         }
         catch (Exception ex)
         {
            Debug.Print(ex.Message);
         }
      }

...

【问题讨论】:

    标签: c# ms-word vsto


    【解决方案1】:

    【讨论】:

    • 感谢您的提醒。该死的过时教程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多