невозможно создать обработчик события для книги или листа в надстройке - PullRequest
0 голосов
/ 12 ноября 2010

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

публичный частичный класс 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.");

     }
}

}

1 Ответ

0 голосов
/ 15 ноября 2010

SheetActivate срабатывает только при переключении между листами в рабочей книге, т.е. вы нажимаете на Sheet2, затем Sheet1 и так далее.Если вы нажмете Alt-Tab на другое приложение и вернетесь в Excel, SheetActivate не будет запущен.

Вам следует взглянуть на Application.WorkbookActivate, Workbook.Activate или другое событие.

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