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

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

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

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

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

Событие запуска

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

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

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

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

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

Событие завершения работы

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

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

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

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

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

Замечание

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

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

Каждое объявление метода обработчика событий имеет одинаковые аргументы, переданные ему: отправитель и e. В Excel аргумент отправителя ссылается на лист, например Sheet1 в Sheet2Word, аргумент отправителя ссылается на документ. Аргумент 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 на уровне документа

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

  1. ThisWorkbook_Startup.

  2. Sheet1_Startup.

  3. Sheet2_Startup.

  4. Sheet3_Startup.

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

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

  6. ThisWorkbook_Shutdown.

  7. Sheet1_Shutdown.

  8. Sheet2_Shutdown.

  9. Sheet3_Shutdown.

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

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

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

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

Событие запуска

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

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

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

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

Событие завершения работы

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

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

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

Замечание

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