2016-06-09 5 views
0

Für einige Ereignisse schlägt die Subskription durch Anhängen des Ereignisobjekts fehl, funktioniert aber, wenn Sie eine lokale Variable verwenden. Ich habe noch nicht herausgefunden warum, wer macht das?VSTO: Welches Ereignis kann nicht direkt mit dem Objekt verknüpft werden?

ich auf dieses Geheimnis kam, als ich mit CommandBarsEvents.OnUpdate, um detect interaction with a shape anfangen zu arbeiten, was Sie können, wie beschrieben here mit bestimmten Problemen kommt. Es gibt andere Ereignisse mit diesem Problem?

Antwort

0

hier klar zu halten, kommt eine (unvollständige) Übersicht über Ereignisse, die und die nicht

  • Ereignissen betroffen sind, was eine lokale Variable

    1. this.Application.CommandBars.OnUpdate
      brauchen.

    Ihr Code hat so sein:

    using Office = Microsoft.Office.Core; 
    namespace Project 
    { 
        public partial class AddIn 
        {  
         private Office.CommandBars commandBars; //declaration of local variable 
    
         private void ThisAddIn_Startup(object sender, System.EventArgs e) 
         { 
          commandBars = this.Application.CommandBars; //initialization of local variable 
          commandBars.OnUpdate += new Office._CommandBarsEvents_OnUpdateEventHandler(commandBars_OnUpdate); //"indirect" subscription to event` 
         } 
    
        } 
    } 
    
  • Ereignisse, welche NICHT eine lokale Variable benötigen

    1. ((InteropExcel.AppEvents_Event)Application).NewWorkbook
    2. this.Application.WorkbookNewSheet
    3. this.Application.WorkbookOpen
      .

    Ihr Code kann wie folgt sein:

    using Office = Microsoft.Office.Core; 
    namespace Project 
    { 
        public partial class AddIn 
        {  
         private void ThisAddIn_Startup(object sender, System.EventArgs e) 
         { 
          ((InteropExcel.AppEvents_Event)Application).NewWorkbook += new InteropExcel.AppEvents_NewWorkbookEventHandler(Excel_NewWorkbook_EventHandler); //"direct" subscription to event` 
         } 
    
        } 
    } 
    
Verwandte Themen