Поделиться через


События в проектах Office

Каждый шаблон проекта Office автоматически создает несколько обработчиков событий. Обработчики событий для настроек на уровне документа несколько отличаются от обработчиков событий для надстроек VSTO.

Область применения. Сведения в этом разделе относятся к проектам уровня документа и проектам надстроек VSTO. См. сведения о функциях, доступных по Приложение Office и типу проекта.

Проекты уровня документа

Visual Studio предоставляет сформированный код для новых или существующих документов или листов в настройках на уровне документа. Этот код создает два различных события: Startup и Shutdown.

Startup - событие

Событие Startup возникает для каждого ведущего элемента (документа, книги или листа) после запуска документа и всех кодов инициализации в сборке. Это самая последняя операция, запускаемая в конструкторе класса, в котором выполняется ваш код. Дополнительные сведения о элементах узла см. в обзоре элементов узла и элементов управления узлами.

При создании проекта на уровне документа Visual Studio создает обработчики событий для события Startup в созданных файлах кода:

  • Для проектов Microsoft Office Word обработчик событий имеет имя ThisDocument_Startup.

  • Для проектов Microsoft Office Excel обработчики событий имеют следующие имена:

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

Shutdown - событие

Событие Shutdown возникает для каждого ведущего элемента (документа или листа), когда домен приложения, в который загружен ваш код, готов к выгрузке. Это самая последняя операция, которая должна быть вызвана в классе при выгрузке.

При создании проекта на уровне документа Visual Studio создает обработчики событий для события Shutdown в созданных файлах кода:

  • Для проектов Microsoft Office Word обработчик событий имеет имя ThisDocument_Shutdown.

  • Для проектов Microsoft Office Excel обработчики событий имеют следующие имена:

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

Примечание.

Не удаляйте программным образом элементы управления во время работы обработчика событий Shutdown документа. Если возникает событие Shutdown , элементы пользовательского интерфейса документа становятся недоступными. Если элементы управления необходимо удалить до закрытия приложения, добавьте свой код в другой обработчик событий, например, BeforeClose или BeforeSave.

Объявления методов обработчика событий

В каждое объявление метода обработчика событий передаются одни и те же аргументы: sender и e. В Excel аргумент sender ссылается на лист, например, Sheet1 или Sheet2. В Microsoft Word аргумент sender ссылается на документ. Аргумент e ссылается на стандартные аргументы для события, которые не используются в этом случае.

В следующем примере кода показаны обработчики событий по умолчанию в проектах на уровне документа для Word.

private void ThisDocument_Startup(object sender, System.EventArgs e)
{
}

private void ThisDocument_Shutdown(object sender, System.EventArgs e)
{
}

В следующем примере кода показаны обработчики событий по умолчанию в проектах на уровне документа для Excel.

Примечание.

В следующем примере кода показаны обработчики событий в классе Sheet1 . Имена обработчиков событий в других классах ведущих элементов соответствуют имени класса. Например, в классе Sheet2 обработчик событий Startup имеет имя Sheet2_Startup. В классе ThisWorkbook обработчик событий Startup имеет имя ThisWorkbook_Startup.

private void Sheet1_Startup(object sender, System.EventArgs e)
{
}

private void Sheet1_Shutdown(object sender, System.EventArgs e)
{
}

Порядок событий в проектах Excel на уровне документа

Обработчики Startup событий в проектах Excel вызываются в следующем порядке:

  1. ThisWorkbook_Startup.

  2. Sheet1_Startup.

  3. Sheet2_Startup.

  4. Sheet3_Startup.

  5. Другие листы по порядку.

    Обработчики событий Shutdown в решении книги вызываются в следующем порядке:

  6. ThisWorkbook_Shutdown.

  7. Sheet1_Shutdown.

  8. Sheet2_Shutdown.

  9. Sheet3_Shutdown.

  10. Другие листы по порядку.

    Порядок определяется при компиляции проекта. Если пользователь изменяет порядок листов во время выполнения, это не приводит к изменению порядка, в котором появляются события при очередном открытии или закрытии книги.

Проекты надстроек VSTO

Visual Studio предоставляет созданный код в надстройках VSTO. Этот код вызывает два разных события: Startup и Shutdown.

Startup - событие

Событие Startup возникает после загрузки надстройки VSTO и запуска всего кода инициализации в сборке. Это событие обрабатывается методом ThisAddIn_Startup в файле сформированного кода.

Код в обработчике событий ThisAddIn_Startup — это первый код пользователя, подлежащий выполнению, если надстройка VSTO не переопределяет метод RequestComAddInAutomationService . В этом случае обработчик событий ThisAddIn_Startup вызывается после RequestComAddInAutomationService.

Не добавляйте код в ThisAdd-In_Startup обработчик событий, если коду требуется открыть документ. Вместо этого добавьте код в событие, которое приложение Office генерирует, когда пользователь создает или открывает документ. Дополнительные сведения см. в разделе "Доступ к документу" при запуске Приложение Office ликации.

Дополнительные сведения о последовательности запуска надстроек VSTO см. в разделе "Архитектура надстроек VSTO".

Shutdown - событие

Событие Shutdown возникает, когда домен приложения, в котором загружен ваш код, готов к выгрузке. Это событие обрабатывается методом ThisAddIn_Shutdown в файле сформированного кода. Этот обработчик событий — последний код пользователя, выполняемый при выгрузке надстройки VSTO.

Событие завершения работы надстроек OUTLOOK VSTO

Событие Shutdown возникает только в том случае, когда пользователь отключает надстройку VSTO с помощью диалогового окна надстроек COM в Outlook. Оно не возникает при завершении работы Outlook. Если у вас есть код, который должен выполняться при завершении работы Outlook, обработайте одно из следующих событий:

Примечание.

Чтобы Outlook принудительно создавал событие Shutdown при выходе, можно изменить реестр. Однако, если администратор отменяет эту настройку, любой код, добавленный в метод ThisAddIn_Shutdown , больше не будет выполняться при завершении работы Outlook. Дополнительные сведения см. в разделе "Завершение работы" для Outlook 2010.