2010-11-12 2 views
0

Im j'utilise VS2008 Addin et im essayant d'écrire et gestionnaire d'événements pour un classeur à l'intérieur de l'addin mais malheureusement il ne se fait pas aiderimpossible de créer et gestionnaire d'événements pour événement classeur/feuille dans un add-in

public partial class ThisAddIn {

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { 
     FinalWorkbook = ExcelApplication.Workbooks.Add(missing); 
     FinalWorkbook.SheetActivate += 
      new Excel.WorkbookEvents_SheetActivateEventHandler(
      FinalWorkbook_ActivateSheet); 

    } 

    private void ThisAddIn_Shutdown(object sender, System.EventArgs e) 
    { 
     // MessageBox.Show("The addin has shutdown"); 
    } 

    public void FinalWorkbook_ActivateSheet(object odjSheet) 
    { 
     sheet.BeforeRightClick += Worksheet_BeforeRightClick; 
     MessageBox.Show(sheet.Name + " Activated2"); 

    } 

    void Worksheet_BeforeRightClick(Excel.Range Target, ref bool Cancel) 
    { 
     Cancel = true; 
     MessageBox.Show("Right-clicking in this sheet" + 
      " is not allowed."); 

    } 
} 

}

Répondre

0

SheetActivate est uniquement déclenché lorsque vous passez entre les feuilles dans le classeur, à savoir que vous cliquez sur Feuille2, puis Sheet1 et ainsi de suite. Si Alt-Tab à une application différente et revenez à Excel, SheetActivate ne sera pas déclenché.

Vous devriez regarder Application.WorkbookActivate, Workbook.Activate ou un autre événement.

Questions connexes