Partager via


Comment : gérer les événements dans une macro

L'environnement de développement intégré (IDE) comprend deux types d'événements : les événements qui s'appliquent à tous les projets, et les événements qui s'appliquent uniquement à des types de projets spécifiques. L'ajout d'un nouveau fichier, la sélection d'une option de menu et la fermeture d'une fenêtre sont autant d'exemples d'événements qui s'appliquent à tous les types de projets. Les événements qui s'appliquent uniquement à des types de projets spécifiques comptent, par exemple, l'ajout d'une référence ou d'une référence Web à un projet.

Cette tâche suppose une connaissance des procédures d'accès à l'environnement de développement Macros et de création d'un projet macro. Pour plus d'informations, consultez Automatisation des actions répétitives à l'aide de macros.

Cet exemple montre comment répondre à des événements de fenêtre qui s'appliquent à tous les projets Visual Studio. Pour plus d'informations sur les événements qui s'appliquent à tous les langages, consultez Réponse aux événements d'automation.

Notes

Les boîtes de dialogue et les commandes de menu qui s'affichent peuvent être différentes de celles qui sont décrites dans l'aide, en fonction de vos paramètres actifs ou de l'édition utilisée. Ces procédures ont été développées avec les paramètres de développement généraux actifs. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Utilisation des paramètres.

Pour capturer un événement indépendant du langage

  1. Dans MyMacros, créez un module de macro et nommez-le CaptureEvents.

  2. Lorsque vous créez une macro, un module nommé EnvironmentEvents est ajouté par défaut. Ce module définit un grand nombre des objets événement décrits dans le tableau répertorié dans Réponse aux événements d'automation. Dans le module EnvironmentEvents, la variable WindowEvents de niveau module est déjà déclarée comme indiqué ci-dessous.

    Public WithEvents windowEvents As EnvDTE.WindowEvents
    
  3. Dans le module EnvironmentEvents, utilisez les zones déroulantes Nom de la classe et Nom de la méthode dans l'éditeur de macros pour créer une routine de gestion des événements WindowClosing destinée à la variable, ou coupez puis collez le code ci-dessous.

    Public Sub windowEvents_WindowClosing( _
    ByVal Window As EnvDTE.Window) Handles windowEvents.WindowClosing
       MsgBox("You are closing the window.")
    End Sub
    
  4. Revenez dans l'environnement de développement et fermez la fenêtre active.

    Le message s'affiche. Ce message s'affiche à chaque fois que vous fermez la fenêtre active. Supprimez le gestionnaire d'événements si vous ne souhaitez pas être informé de chaque fermeture de la fenêtre active.

Ajout d'une référence à un projet

Cet exemple montre comment répondre à l'ajout d'une référence à un projet. Les événements spécifiques au langage sont contenus dans la propriété Events. Cet exemple fournit une application spécifique au projet de liaison à ReferencesEvents. Vous pouvez également fournir un gestionnaire d'événements de niveau global en définissant le gestionnaire dans le module EnvironmentEvents. Pour plus d'informations, consultez Comment : créer un gestionnaire d'événements dans une macro pour un type de projet spécifique. Pour exécuter cet exemple, vous devez disposer d'un projet Visual Basic ou Visual C# ouvert dans l'IDE de Visual Studio.

Pour capturer un événement Visual Basic ou Visual C#

  1. Créez un module de macro appelé CaptureRefEvents.

  2. Ajoutez une référence à VSLangProj en sélectionnant Ajouter une référence... dans le menu Projet dans l'environnement de développement intégré (IDE) des macros. Dans la boîte de dialogue Ajouter une référence, sélectionnez VSLangProj, cliquez sur OK, puis sur Ajouter.

  3. Dans le module EnvironmentEvents, développez la section réduite « Code généré automatiquement, ne pas modifier », puis ajoutez une variable ReferencesEvents de niveau module.

    Dim WithEvents refEvents As VSLangProj.ReferencesEvents
    
  4. Utilisez les zones déroulantes Nom de la classe et Nom de la méthode dans l'éditeur pour créer des routines de gestion d'événements pour la variable.

    Public Sub refEvents_ReferenceAdded(ByVal pReference As _
    VSLangProj.Reference) Handles refEvents.ReferenceAdded
       MsgBox(pReference.Name & " was added to the project.")
    End Sub
    
  5. Cliquez avec le bouton droit sur le module CaptureRefEvents dans l'Explorateur de macros. Dans le menu déroulant, sélectionnez Nouvelle macro. Coupez et collez le code ci-dessous pour initialiser la variable 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. Enregistrez la macro ConnectRefEvents.

  7. Dans l'IDE de Visual Studio, ouvrez un projet Visual Basic ou Visual C#.

  8. Exécutez la macro ConnectRefEvents.

  9. Ajoutez une référence au projet dans l'IDE de Visual Studio.

    Un message s'affiche : « <Nom de la référence> a été ajoutée au projet ».

Voir aussi

Référence

Events

Events2