Compartir a través de


Cómo: Controlar eventos en una macro

En el entorno de desarrollo integrado (IDE) existen dos tipos de eventos: los que se aplican a todos los proyectos y los que se aplican sólo a tipos de proyecto específicos. Algunos ejemplos de eventos que se aplican a todos los tipos de proyecto son la inclusión de un nuevo archivo, la selección de una nueva opción y el cierre de una ventana. Entre los eventos que se aplican sólo a tipos de proyecto específicos se encuentran la inclusión de una referencia o una referencia Web a un proyecto.

Esta tarea asume que sabe cómo tener acceso al entorno de desarrollo de macros y cómo crear un proyecto de macros. Para obtener más información, vea Automatizar acciones repetitivas mediante macros.

En este ejemplo se muestra cómo responder a eventos de ventanas, los cuales se aplican a todos los proyectos de Visual Studio. Para obtener más información sobre eventos que se aplican a todos los lenguajes, vea Responder a eventos de automatización.

Nota

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Estos procedimientos se han desarrollado con la Configuración de desarrollo general activa. Para cambiar la configuración, elija la opción Importar y exportar configuraciones del menú Herramientas. Para obtener más información, vea Trabajar con valores de configuración.

Para capturar un evento neutral respecto al lenguaje

  1. En MyMacros, cree un nuevo módulo de macro con el nombre CaptureEvents.

  2. Cuando crea una macro nueva, se agrega de manera predeterminada un módulo denominado EnvironmentEvents. Este módulo define muchos de los objetos de evento descritos en la tabla que aparece en Responder a eventos de automatización. En el módulo EnvironmentEvents, la variable de módulo WindowEvents ya está declarada como se muestra a continuación.

    Public WithEvents windowEvents As EnvDTE.WindowEvents
    
  3. En el módulo EnvironmentEvents, utilice los cuadros desplegables Nombre de clase y Nombre de método del editor de IDE de macros para crear una rutina que controle eventos WindowClosing para la variable, o bien corte y pegue el código siguiente.

    Public Sub windowEvents_WindowClosing( _
    ByVal Window As EnvDTE.Window) Handles windowEvents.WindowClosing
       MsgBox("You are closing the window.")
    End Sub
    
  4. Vuelva al entorno de desarrollo y cierre la ventana activa.

    Aparece el cuadro de mensaje. Este mensaje se muestra cada vez que se cierra la ventana activa. Si no desea recibir una notificación cuando se cierre la ventana activa, elimine el controlador de eventos.

Agregar una referencia a un proyecto

En este ejemplo se muestra cómo responder ante la inclusión de una referencia a un proyecto. Los eventos específicos del lenguaje están contenidos en la propiedad Events. En este ejemplo se proporciona una aplicación específica de proyecto de enlace con ReferencesEvents. También se puede proporcionar un controlador de eventos global, definiendo el controlador en el módulo EnvironmentEvents. Para obtener más información, vea Cómo: Crear un controlador de eventos en una macro de un tipo específico de proyecto. Para ejecutar este ejemplo, debe tener abierto un proyecto de Visual Basic o Visual C# en el IDE de Visual Studio.

Para capturar un evento de Visual Basic o Visual C#

  1. Cree un nuevo módulo de macros, CaptureRefEvents.

  2. Agregue una referencia a VSLangProj, seleccionando Agregar referencia en el menú Proyecto del entorno de desarrollo integrado (IDE) de macros. En el cuadro de diálogo Agregar referencia, seleccione VSLangProj, haga clic en Aceptar y, a continuación, en Agregar.

  3. En el módulo EnvironmentEvents, expanda la sección contraíble Código generado automáticamente, no modificar y agregue una variable de módulo ReferencesEvents.

    Dim WithEvents refEvents As VSLangProj.ReferencesEvents
    
  4. Utilice los cuadros desplegables Nombre de clase y Nombre de método del editor para crear rutinas de control de eventos para 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. Haga clic con el botón secundario del mouse en el módulo CaptureRefEvents del Explorador de macros. Seleccione Nueva macro en la lista desplegable. Corte y pegue el código siguiente para inicializar 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. Guarde la macro ConnectRefEvents.

  7. En el IDE de Visual Studio, abra un proyecto de Visual Basic o de Visual C#.

  8. Ejecute la macro ConnectRefEvents.

  9. Agregue una referencia al proyecto en el IDE de Visual Studio.

    Aparecerá un cuadro de mensaje con el texto: "<Reference name> se agregó al proyecto".

Vea también

Referencia

Events

Events2