Если вам нужен доступ к событию, которое не было объявлено для вас в модуле EnvironmentEvents, то можно добавить объявление события вручную. Для демонстрации давайте добавим новый обработчик для события WindowHiding, предоставляемого классом WindowVisibilityEvents. Это событие (которое не включено по умолчанию) говорит вам, скрыто ли окно инструмента в интегрированной среде.
Сначала надо добавить объявление события где-нибудь внутри макропроекта. Подходящим местом для этого будет модуль EnvironmentEvents; при этом весь код событий будет находиться в одном месте. Не забудьте поместить объявление события вне области, помеченной как "Автоматически сгенерированный код, не модифицировать". Вот объявление события для класса WindowVisibilityEvents:
л
<System.ContextStaticAttribute()> _
Public WithEvents WindowVisibilityEvents As _
EnvDTE80.WindowVisibilityEvents
Теперь обработчик события: точно так же, как и в предыдущем примере, выберите тип WindowVisibilityEvents в раскрывающемся списке типов и событие WindowHiding в раскрывающемся списке членов. Это создаст скелет процедуры обработки события (где вы должны отобразить окно сообщения):
Private Sub WindowVisibilityEvents_WindowHiding(ByVal Window As _
EnvDTE.Window) Handles WindowVisibilityEvents.WindowHiding
* MessageBox.Show("WindowHiding fired for " & Window.Caption)
End Sub