Jak: reagovat na události v konkrétní projekt (Visual Basic)
Automatizace modelu obsahuje objekty, které lze reagovat na události prostředí v Visual Studio integrované vývojové prostředí (IDE).Prostředí události definované v VSLangProj a VSLangProj80 jsou specifické pro Visual C# a Visual Basic projekty.Například ImportsEvents je aktivována při importu je přidána či odebrána z Imports kolekce.
V tomto příkladu Visual Basic přidat ReferencesEvents obslužnou rutinu události, které je specifické pro typ projektu přidat do projektu.ReferencesEventsje aktivována při změně, přidány do nebo z odkazu Visual C# nebo Visual Basic projektu.
[!POZNÁMKA]
Dialogová okna a příkazy v nabídkách menu, které vidíte, se mohou lišit od těch popsaných v nápovědě, v závislosti na vašich aktivních nastaveních nebo edici.Tyto postupy byly vyvinuty s aktivní Obecné nastavení pro vývoj.Chcete-li změnit nastavení, zvolte Import and Export Settings v menu Nástroje.Další informace naleznete v tématu Nastavení aplikace Visual Studio.
Zpracování události související reference jazyka Visual Basic
Vytvoření Visual Studio přidat projekt v Visual Basic.
Přidat Imports VSLangProj na začátek souboru Connect.vb.
Na projektu nabídky, klepněte na tlačítko Přidat odkaz na, klepněte .NET karta, vyberte první VSLangProja klepněte na tlačítko OK.
Ve třídě připojit inicializovat proměnné pro zpracování ReferencesEvents objektu a další zpracování OutputWindowPane.
Public Class Connect Implements IDTExtensibility2 Dim _applicationObject As DTE2 Dim _addInInstance As AddIn ' Handle Reference events. Public WithEvents refEvents As VSLangProj.ReferencesEvents Private outputWinPane As OutputWindowPane
V tomto příkladu je název proměnné refEvents.
Jiné objekty automatizace modelu se vztahují na jiné typy událostí, které jsou specifické pro projekt.Například ImportsEvents je aktivována při importu je přidána či odebrána z Imports kolekce.BuildManagerEventsse vztahuje na události týkající se dočasného sestavení z výstupů vlastní nástroje.Další informace o BuildManager objekt, viz Úvod do objektu Správce BuildManager.Úplný seznam událostí, které jsou specifické pro typy projektů, viz Objekty událostí (specifické typy projektů).Seznam Obecná automatické události naleznete v tématu Automatizace objekty událostí.
V OnConnection metody je proměnná zachytit události initialize.V tomto příkladu má proměnná název události.
Dim events As EnvDTE80.Events2 events = CType(_applicationObject.Events, Events2)
V OnConnection metodu inicializace OutputWindow proměnné.
Dim outputWindow As OutputWindow outputWindow = CType(_applicationObject.Windows.Item _ (Constants.vsWindowKindOutput).Object, EnvDTE.OutputWindow) outputWinPane = outputWindow.OutputWindowPanes.Add_ ("Reference Event Information ")
Také v OnConnection metodu načtení objektů událostí z automatizace modelu.
refEvents = CType(events.GetObject("CSharpReferencesEvents"),_ ReferencesEvents)
Visual StudioMetoda zpracování automaticky připojí, protože používá deklaraci proměnné objektu WithEvents (Visual Basic) popisovač.
V tomto příkladu ReferencesEvents jsou specifické pro Visual C# projekty.Reagovat na události, které jsou specifické pro Visual Basic události, nahraďte řetězec, CSharpReferencesEvents s VBReferencesEvents.Další informace o určení řetězce pro události, které jsou specifické pro různé typy projektů, viz Objekty událostí (specifické typy projektů).
Přidáte postupy pro každé události týkající se objektu události.Například ke zpracování události, která nastane při přidání odkazu použijete:
Sub ReferenceAdded(ByVal addedRef As VSLangProj.Reference)_ Handles refEvents.ReferenceAdded outputWinPane.OutputString_ ("ReferencesEvents.ReferenceAdded" & ControlChars.Lf) outputWinPane.OutputString("The reference to " _ & addedRef.Name & " was added." & ControlChars.Lf) End Sub
U ReferencesEvents, musí mít události definované pro ReferenceAdded, ReferenceRemoved, ReferenceChanged, jak je uvedeno v úplný seznam níže uvedený příklad.
Konečně aby se zabránilo Visual Studio od nadále sledovat události související se okno po ukončení doplněk zpomalení systému, měli byste zakázat zpracování událostí.V Visual Basic, to se provádí nastavením obslužné rutiny události na Nothing.
Public Sub OnDisconnection(ByVal RemoveMode As_ Extensibility.ext_DisconnectMode, ByRef custom As System.Array)_ Implements Extensibility.IDTExtensibility2.OnDisconnection refEvents = Nothing End Sub
Vypne se zpracování událostí zda doplněk nebo IDE vypnutí doplněk při běhu.Při vypnutí IDE všechny spuštěné doplňky automaticky ukončeny první.
Příklad
Následující příklad je základní Visual Studio , který ukazuje, jak zachytit a zpracovat Visual C# události v referenční Visual Studio.Vždy, když dojde k události odkaz, je odeslána oznámení Výstup okna.
Imports System
Imports Microsoft.VisualStudio.CommandBars
Imports Extensibility
Imports EnvDTE
Imports EnvDTE80
Imports VSLangProj
Public Class Connect
Implements IDTExtensibility2
Dim _applicationObject As DTE2
Dim _addInInstance As AddIn
' Handle Reference events.
Public WithEvents refEvents As VSLangProj.ReferencesEvents
Private outputWinPane As OutputWindowPane
Public Sub OnBeginShutdown(ByRef custom As System.Array) _
Implements Extensibility.IDTExtensibility2.OnBeginShutdown
End Sub
Public Sub OnAddInsUpdate(ByRef custom As System.Array) _
Implements Extensibility.IDTExtensibility2.OnAddInsUpdate
End Sub
Public Sub OnStartupComplete(ByRef custom As System.Array) _
Implements Extensibility.IDTExtensibility2.OnStartupComplete
End Sub
Public Sub OnDisconnection(ByVal RemoveMode As Extensibility.ext_DisconnectMode, ByRef custom As System.Array) _
Implements Extensibility.IDTExtensibility2.OnDisconnection
' Turns off reference event handling when the add-in shuts down.
refEvents = Nothing
End Sub
Public Sub OnConnection(ByVal application As Object, _
ByVal connectMode As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef _
custom As System.Array) Implements _
Extensibility.IDTExtensibility2.OnConnection
_applicationObject = CType(application, EnvDTE80.DTE2)
_addInInstance = CType(addInInst, EnvDTE.AddIn)
Dim events As EnvDTE80.Events2
events = CType(_applicationObject.Events, Events2)
' Send event messages to the Output window.
Dim outputWindow As OutputWindow
outputWindow = CType(_applicationObject.Windows.Item _
(Constants.vsWindowKindOutput).Object, EnvDTE.OutputWindow)
outputWinPane = outputWindow.OutputWindowPanes.Add _
("Reference Event Information ")
' Retrieve the event objects from the automation model.
' Visual Basic automatically connects the method handler since
' the object variable declaration uses the 'WithEvents' handler.
refEvents = CType(events.GetObject("CSharpReferencesEvents"), _
ReferencesEvents)
End Sub
' Handle all of the various reference-related events.
Sub ReferenceRemoved(ByVal removedRef As VSLangProj.Reference) _
Handles refEvents.ReferenceRemoved
outputWinPane.OutputString("ReferencesEvents.ReferenceRemoved" _
& ControlChars.Lf)
outputWinPane.OutputString("The reference to " & removedRef.Name _
& " was removed." & ControlChars.Lf)
End Sub
Sub ReferenceChanged(ByVal changedRef As VSLangProj.Reference) _
Handles refEvents.ReferenceChanged
outputWinPane.OutputString("ReferencesEvents.ReferenceChanged" _
& ControlChars.Lf)
outputWinPane.OutputString("The reference to " & changedRef.Name _
& " was changed." & ControlChars.Lf)
End Sub
Sub ReferenceAdded(ByVal addedRef As VSLangProj.Reference) _
Handles refEvents.ReferenceAdded
outputWinPane.OutputString("ReferencesEvents.ReferenceAdded" _
& ControlChars.Lf)
outputWinPane.OutputString("The reference to " & addedRef.Name _
& " was added." & ControlChars.Lf)
End Sub
End Class
Probíhá kompilace kódu
Tento kód kompilace, vytvořit nový Visual Studio přidat projekt v Visual Basic a nahraďte kód třídy připojit kód v příkladu.Informace o spuštění v Postup: ovládání doplňky pomocí Správce doplňků.
Viz také
Úkoly
Jak: reagovat na události v konkrétní projekt (Visual C#)
Referenční dokumentace
Importuje příkaz (.NET oboru názvů a typ)