Nasıl yapılır: (Visual Basic) belirli bir projede olaylara yanıt
Otomasyon modeli ortamı olaylara yanıt vermek için kullanılan nesneleri içeren Visual Studio tümleşik geliştirme ortamı (IDE). Tanımlanan ortam olayları VSLangProj ve VSLangProj80 özgü Visual C# ve Visual Basic projeleri. Örneğin, ImportsEvents bir alma işlemi için eklendiğinde veya kaldırılmasını yükseltilmiş bir Imports koleksiyonu.
Bu örnek Visual Basic eklenecek bir ReferencesEvents bir eklenti projesi için proje türü için belirli olay işleyicisi. ReferencesEventsbaşvuru değiştirilen, eklenen veya kaldırılmasını yükseltilmiş bir Visual C# veya Visual Basic proje.
Not
Gördüğünüz iletişim kutuları ve menü komutları, etkin ayarlarınıza ve ürün sürümüne bağlı olarak Yardım menüsünde açıklanana göre farklılık gösterebilir.Bu yordamlar, genel geliştirme ayarları ile etkin geliştirilmiştir.Ayarlarınızı değiştirmek için Araçlar menüsünden İçeri ve Dışarı Aktarma Ayarları'nı seçin.Daha fazla bilgi için bkz. Visual Studio ayarları.
Visual Basic kullanarak başvuru ile ilgili olayları işlemek için
Oluşturma bir Visual Studio eklenti projesi Visual Basic.
Ekleme Imports VSLangProj Connect.vb dosyanın en üstüne.
Üzerinde Proje menüsünde,'ı Add Reference,'ı .net sekmesinde, ilk seçin VSLangProj,'ı tıklatın ve Tamam.
Connect sýnýfý içinde işlemek için bir değişkeni başlatmak ReferencesEvents nesnesi ve işlemek için başka bir 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
Bu örnekte, değişken adlı refEvents.
Diğer proje için belirli olay türleri için otomasyon modeli diğer nesnelerin ilgilidir. Örneğin, ImportsEvents bir alma işlemi için eklendiğinde veya kaldırılmasını yükseltilmiş bir Imports koleksiyonu. BuildManagerEventsYerleşik özel araçların çıkışları geçici derlemeler için ilgili olaylar için geçerlidir. Daha fazla bilgi için BuildManager nesne için bkz: BuildManager nesne giriş. Proje türleri için özel olaylar tam listesi için bkz: Olay nesneleri (proje türleri için özel). Genel Otomasyon olaylar listesi için bkz: Otomasyon olay nesneleri.
De OnConnection yöntemi, bir değişkeni olayların ele alınması için başlatma. Bu örnekte, olayları değişken adı verilir.
Dim events As EnvDTE80.Events2 events = CType(_applicationObject.Events, Events2)
De OnConnection yöntemini başlatmak bir OutputWindow değişkeni.
Dim outputWindow As OutputWindow outputWindow = CType(_applicationObject.Windows.Item _ (Constants.vsWindowKindOutput).Object, EnvDTE.OutputWindow) outputWinPane = outputWindow.OutputWindowPanes.Add_ ("Reference Event Information ")
Ayrıca, OnConnection yöntemi, olay nesnelerini Otomasyon modelinden almak.
refEvents = CType(events.GetObject("CSharpReferencesEvents"),_ ReferencesEvents)
Visual StudioNesne değişken bildiriminde kullandığından yöntemi işleyicisi otomatik olarak bağlar WithEvents (Visual Basic) işleyicisi.
Bu örnekte ReferencesEvents özgü Visual C# projeleri. İçin belirli olaylara yanıt vermek için Visual Basic olaylar, dize yerine CSharpReferencesEvents ile VBReferencesEvents. Dizeleri farklı türde projeler için belirli olaylar için kullanılacağını belirleme hakkında daha fazla bilgi için bkz: Olay nesneleri (proje türleri için özel).
Her olay için olay nesnesi ilgili yordamlar ekleyin. Örneğin, bir başvuru eklendiğinde oluşan olayý iþlemek için kullanırsınız:
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
Durumunda ReferencesEvents, olayları için tanımlanmış olmalıdır ReferenceAdded, ReferenceRemoved, ReferenceChanged, tam, aşağıdaki örnekte görüldüğü gibi.
Son olarak, önlemek için Visual Studio sisteminizin eklenti kapattıktan sonra pencere ile ilgili olayları izlemek devam ederseniz yavaşlatmalarını, olay işleme devre. De Visual Basic, bu olay işleyicisi ayarlayarak yapılır Nothing.
Public Sub OnDisconnection(ByVal RemoveMode As_ Extensibility.ext_DisconnectMode, ByRef custom As System.Array)_ Implements Extensibility.IDTExtensibility2.OnDisconnection refEvents = Nothing End Sub
Eklenti çalışmayı sürdürürken eklenti ya da IDE kapatılır mı bu olay işleme devre dışı bırakır. Tüm çalışan eklentiler IDE kapatıldığında, ilk otomatik olarak bilgisayarı.
Örnek
Bir basic aşağıdaki örnekte olduğu Visual Studio yakalamak ve işlemek gösterilmiştir eklentisini Visual C# olayda başvuru Visual Studio. Başvuru olay oluştuğunda bir uyarı iletisi gönderilir Çıkış pencere.
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
Kod Derleniyor
Bu kodu derlemeye yeni bir oluşturmak Visual Studio eklenti projesi Visual Basic ve örnek kodu ile bağlan sınıfının kodunu değiştirin. Bir eklenti çalıştırma hakkında daha fazla bilgi için bkz: Nasıl yapılır: denetim Eklenti Yöneticisi'ni kullanarak eklentileri.
Ayrıca bkz.
Görevler
Nasıl yapılır: (Visual C#) belirli bir projede olaylara yanıt
Başvuru
Bildirimi alır (.net ad ve tür)