Condividi tramite


Procedura: gestire gli eventi in una macro

Nell'ambiente di sviluppo integrato (IDE, Integrated Development Environment) sono disponibili due tipi di eventi: eventi che riguardano tutti i progetti ed eventi che riguardano solo tipi di progetti specifici. Esempi di eventi che riguardano tutti i tipi di progetti includono l'aggiunta di un nuovo file, la selezione di un'opzione di menu e la chiusura di una finestra. Esempi di eventi che riguardano solo tipi di progetti specifici includono l'aggiunta di un riferimento o di un riferimento Web a un progetto.

Per l'esecuzione di questa attività si presuppone che l'utente sia in grado di accedere all'ambiente di sviluppo delle macro e di creare un progetto macro. Per ulteriori informazioni, vedere Automazione di operazioni ripetitive tramite macro.

Nell'esempio viene illustrato come rispondere a eventi relativi a finestre che riguardano tutti i progetti Visual Studio. Per ulteriori informazioni sugli eventi che riguardano tutti i linguaggi, vedere Risposta a eventi di automazione.

Nota

È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma. Queste procedure sono state sviluppate con le Impostazioni generali per lo sviluppo attive. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Gestione delle impostazioni.

Per acquisire un evento indipendente dal linguaggio

  1. In MyMacros, creare un nuovo modulo macro e denominarlo CaptureEvents.

  2. Quando si crea una nuova macro, per impostazione predefinita viene aggiunto un modulo denominato EnvironmentEvents. Questo modulo definisce molti degli oggetti evento descritti nella tabella elencata in Risposta a eventi di automazione. Nel modulo EnvironmentEvents, la variabile WindowEvents a livello di modulo è già dichiarata come illustrato di seguito.

    Public WithEvents windowEvents As EnvDTE.WindowEvents
    
  3. Nel modulo EnvironmentEvents utilizzare le caselle di riepilogo a discesa Nome classe e Nome metodo dell'editor dell'IDE macro per creare una routine di gestione eventi WindowClosing per la variabile oppure tagliare e incollare il codice riportato di seguito.

    Public Sub windowEvents_WindowClosing( _
    ByVal Window As EnvDTE.Window) Handles windowEvents.WindowClosing
       MsgBox("You are closing the window.")
    End Sub
    
  4. Tornare all'ambiente di sviluppo e chiudere la finestra attiva.

    Verrà visualizzata la finestra di messaggio. Questo messaggio viene visualizzato ogni volta che viene chiusa la finestra attiva. Eliminare il gestore eventi se non si desidera essere informati ogni volta che viene chiusa la finestra attiva.

Aggiunta di un riferimento a un progetto

Nell'esempio viene illustrato come rispondere all'aggiunta di un riferimento a un progetto. Gli eventi specifici del linguaggio sono contenuti nella proprietà Events. Nell'esempio viene fornita un'applicazione specifica di un progetto di associazione a ReferencesEvents. È anche possibile fornire un gestore eventi a livello globale definendo il gestore nel modulo EnvironmentEvents. Per ulteriori informazioni, vedere Procedura: creare un gestore eventi in una macro per un tipo di progetto specifico. Per eseguire questo esempio è necessario avere un progetto Visual Basic o Visual C# aperto nell'IDE di Visual Studio.

Per acquisire un evento Visual Basic o Visual C#

  1. Creare un nuovo modulo macro denominato CaptureRefEvents.

  2. Aggiungere un riferimento a VSLangProj selezionando Aggiungi riferimento… dal menu Progetto nell'IDE Macro. Nella finestra di dialogo Aggiungi riferimento selezionare VSLangProj, scegliere OK, quindi Aggiungi.

  3. Nel modulo EnvironmentEvents espandere la sezione compressa Automatically generated code, do not modify, quindi aggiungere una variabile ReferencesEvents a livello di modulo.

    Dim WithEvents refEvents As VSLangProj.ReferencesEvents
    
  4. Utilizzare le caselle di riepilogo a discesa Nome classe e Nome metodo nell'editor per creare routine di gestione degli eventi per la variabile.

    Public Sub refEvents_ReferenceAdded(ByVal pReference As _
    VSLangProj.Reference) Handles refEvents.ReferenceAdded
       MsgBox(pReference.Name & " was added to the project.")
    End Sub
    
  5. Fare clic con il pulsante destro del mouse sul modulo CaptureRefEvents in Esplora macro. Scegliere Nuova macro dal menu di scelta rapida. Tagliare e incollare il codice riportato di seguito per inizializzare la variabile 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. Salvare la macro ConnectRefEvents.

  7. Nell'IDE di Visual Studio aprire un progetto Visual Basic o Visual C#.

  8. Eseguire la macro ConnectRefEvents.

  9. Aggiungere un riferimento al progetto nell’IDE di Visual Studio.

    Verrà visualizzata una finestra di messaggio con il testo: "<Nome di riferimento> aggiunto al progetto".

Vedere anche

Riferimenti

Events

Events2