События в проектах 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 вызываются в следующем порядке:
ThisWorkbook_Startup
.Sheet1_Startup
.Sheet2_Startup
.Sheet3_Startup
.Другие листы по порядку.
Обработчики событий Shutdown в решении книги вызываются в следующем порядке:
ThisWorkbook_Shutdown
.Sheet1_Shutdown
.Sheet2_Shutdown
.Sheet3_Shutdown
.Другие листы по порядку.
Порядок определяется при компиляции проекта. Если пользователь изменяет порядок листов во время выполнения, это не приводит к изменению порядка, в котором появляются события при очередном открытии или закрытии книги.
Проекты надстроек 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, обработайте одно из следующих событий:
Событие Quit объекта Application .
Примечание.
Чтобы Outlook принудительно создавал событие Shutdown при выходе, можно изменить реестр. Однако, если администратор отменяет эту настройку, любой код, добавленный в метод ThisAddIn_Shutdown
, больше не будет выполняться при завершении работы Outlook. Дополнительные сведения см. в разделе "Завершение работы" для Outlook 2010.