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


Практическое руководство. Обработка событий в макросе

Обновлен: Ноябрь 2007

В интегрированной среде разработки (IDE) существует два типа событий: события, применимые ко всем проектам и применимые только к определенным типам проектов. К событиям, применимым ко всем типам проектов, относятся добавление нового файла, выделение параметра меню и закрытие окна. К событиям, применимым к определенным типам проектов, относятся добавление ссылки или веб-ссылки на проект.

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

В этом примере демонстрируется реагирование на события окон, применимые ко всем проектам Visual Studio. Дополнительные сведения о событиях, применимых ко всем языкам, см. в разделе Реакция на события автоматизации.

ee1f34as.alert_note(ru-ru,VS.90).gifПримечание.

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или выпуска среды. Эти процедуры были разработаны с обычными параметрами разработки. Чтобы изменить параметры выберите команду Импорт и экспорт параметров в меню Сервис. Дополнительные сведения см. в разделе Параметры Visual Studio.

Чтобы перехватить событие, не зависящее от языка

  1. Создайте в окне Мои макросы новый модуль макроса с именем CaptureEvents.

  2. При создании макроса по умолчанию добавляется модуль EnvironmentEvents. Этот модуль определяет объекты событий, описанные в таблице в разделе Реакция на события автоматизации. В модуле EnvironmentEvents переменная WindowEvents уровня модуля уже объявлена, как показано ниже.

    Public WithEvents windowEvents As EnvDTE.WindowEvents
    
  3. В модуле EnvironmentEvents используйте раскрывающиеся окна Имя класса и Имя метода в редакторе макросов интегрированной среды разработки для создания процедуры обработки событий WindowClosing, или вставьте приведенный ниже код.

    Public Sub windowEvents_WindowClosing( _
    ByVal Window As EnvDTE.Window) Handles windowEvents.WindowClosing
       MsgBox("You are closing the window.")
    End Sub
    
  4. Вернитесь в среду разработки и закройте активное окно.

    Появится окно сообщения. Это сообщение отображается при каждом закрытии активного окна. Удалите обработчик событий, если не нужно получать сообщение при каждом закрытии активного окна.

Добавление ссылки в проект

В этом примере демонстрируется реагирование на добавление ссылки в проект. Зависящие от языка события содержатся в свойстве Events. В нем показана реализация, сходная с ReferencesEvents. Можно также предоставить обработчик событий глобального уровня, определив обработчик в модуле EnvironmentEvents. Дополнительные сведения см. в разделе Практическое руководство. Создание обработчика событий в макросе для определенного типа проекта. Чтобы запустить этот пример, проект Visual Basic, Visual J# или Visual C# следует открыть в интегрированной среде разработки Visual Studio.

Чтобы перехватить событие Visual Basic, Visual J# или Visual C#

  1. Создайте новый модуль макроса с именем CaptureRefEvents.

  2. Добавьте ссылку на VSLangProj, выбрав пункт Добавить ссылку… в меню Проект в интегрированной среде разработки макросов. В диалоговом окне Добавление ссылку выберите VSLangProj, нажмите ОК, а затем MyFirstVisualizer.

  3. В модуле EnvironmentEvents разверните свернутый раздел Создать код автоматически, не изменять и добавьте переменную уровня модуля ReferencesEvents.

    Dim WithEvents refEvents As VSLangProj.ReferencesEvents
    
  4. Воспользуйтесь раскрывающимися окнами редактора Имя класса и Имя метода для создания программ из библиотеки DLL для обработки событий для переменной.

    Public Sub refEvents_ReferenceAdded(ByVal pReference As _
    VSLangProj.Reference) Handles refEvents.ReferenceAdded
       MsgBox(pReference.Name & " was added to the project.")
    End Sub
    
  5. Правой кнопкой мыши щелкните модуль CaptureRefEvents в Обозревателе макросов. В раскрывающемся меню выберите Новый макрос. Для инициализации переменной refEvents, вырежьте и вставьте приведенный ниже код.

    Public Sub ConnectRefEvents()
       Dim proj As VSLangProj.VSProject
       proj = CType(DTE.Solution.Projects.Item(1).Object, _
          VSLangProj.VSProject)
       refEvents = proj.Events.ReferencesEvents
    End Sub
    
  6. Сохраните макрос ConnectRefEvents.

  7. Откройте проект Visual Basic, Visual C# или Visual J# в интегрированной среде разработки Visual Studio.

  8. Запустите макрос ConnectRefEvents.

  9. Добавьте ссылку на проект в интегрированной среде разработки Visual Studio.

    Откроется окно с сообщением: "<Имя ссылки> была добавлена в проект".

См. также

Ссылки

Events

Events2