Procedura: gestire gli eventi in una macro
Aggiornamento: novembre 2007
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 rispetto a quelli descritti nella Guida in linea a seconda delle impostazioni attive o dell'edizione del programma. Queste routine 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 Impostazioni di Visual Studio. |
Per acquisire un evento indipendente dal linguaggio
In MyMacros, creare un nuovo modulo macro e denominarlo CaptureEvents.
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
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
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 che un progetto Visual Basic, Visual J#, or Visual C# sia aperto nell'IDE di Visual Studio.
Per acquisire un evento Visual Basic, Visual J# o Visual C#
Creare un nuovo modulo macro denominato CaptureRefEvents.
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.
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
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
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
Salvare la macro ConnectRefEvents.
Aprire un progetto Visual C#, Visual J# o Visual Basic nell'IDE di Visual Studio.
Eseguire la macro ConnectRefEvents.
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".