كيفية القيام بما يلي: الاستجابة إلى الأحداث في مشروع محددة (Visual Basic)

يتضمن طراز التنفيذ التلقائي الكائنات التي يمكن استخدامها للاستجابة للأحداث بيئة في Visual Studioبيئة التطوير المتكاملة (IDE). بيئة أحداث معينة إلى VSLangProjو VSLangProj80مشاريع تم تعريفها في #Visual Cو Visual Basic. على سبيل المثال، ImportsEventsتشغيل الحدث عند إضافتها إلى استيراد أو إزالتها من Importsمجموعة.

يستخدم هذا المثال Visual Basicإلى إضافة ReferencesEventsمعالج الأحداث تقتصر على نوع من المشروع أو إلى إضافة - في المشروع. ReferencesEventsيتم تشغيل الحدث عند تغير مرجع تمت الإضافة إلى, أو إزالتها من#Visual CأوVisual Basicالمشروع.

ملاحظة

قد تختلف مربعات الحوار وأوامر القائمة التى تشاهدها الان عن تلك الموصوفة في التعليمات اعتماداً على الإعدادات النشطة أو الإصدار الخاص بك. تم تطوير هذه الإجراءات من خلال "إعدادات تطوير عام" النشط. لتغيير الإعدادات الخاصة بك, اختر إعدادات الاستيراد و التصدير ضمن القائمة أدوات . لمزيد من المعلومات، راجع العمل مع إعدادات.

إلى مؤشر الأحداث المتعلقة بـ النافذة باستخدام Visual Basic

  1. إنشاء Visual Studioالمشروع الوظيفة الإضافية في Visual Basic.

  2. إضافة Imports VSLangProjإلى أعلى الملف يعيّن.vb.

  3. تشغيل القائمة مشروع، انقر فوق إضافة مرجع، انقر فوق علامة تبويب .NET تحديد VSLangProj VSLangProj2 VSLangProj80 ثم انقر فوق ‏‏موافق .

  4. في الفئة يعيّن يهيّئ متغير إلى مؤشر ReferencesEventsالكائن وآخر إلى مؤشر 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
    

    في هذا المثال، يسمى المتغير refEvents.

    أخرى الكائنات في طراز التنفيذ التلقائي ربطها إلى أنواع أخرى من الأحداث التي تحدث في المشروع. على سبيل المثال، ImportsEventsتشغيل الحدث عند إضافتها إلى استيراد أو إزالتها من Importsمجموعة. BuildManagerEventsينطبق الأحداث المرتبطة المؤقتة التجميعات بناء من نتائج مرحلتي أدوات مخصصة. لمزيد من المعلومات، راجع BuildManagerObject Pathsمقدمة إلى كائن BuildManager. للحصول إكمال قائمة الأحداث التي تحدث في أنواع المشاريع راجع حدث الكائنات (محددة بأنواع المشاريع). للحصول على قائمة أحداث التنفيذ التلقائي العامة راجع كائنات أحداث التنفيذ التلقائي.

  5. في OnConnectionأسلوب يهيّئ متغير إلى اعتراض الأحداث. في هذا المثال، تسمى المتغير winEvents.

        Dim events As EnvDTE80.Events2
        events = CType(_applicationObject.Events, Events2)
    
  6. في OnConnectionأسلوب يهيّئ OutputWindowمتغير.

        Dim outputWindow As OutputWindow
        outputWindow = CType(_applicationObject.Windows.Item _
        (Constants.vsWindowKindOutput).Object, EnvDTE.OutputWindow)
        outputWinPane = outputWindow.OutputWindowPanes.Add_
        ("Reference Event Information ")
    
  7. في OnConnectionأسلوب استرداد الحدث الكائنات من طراز التنفيذ التلقائي.

    refEvents = CType(events.GetObject("CSharpReferencesEvents"),_
     ReferencesEvents)
    

    Visual Studioتلقائياً بتوصيل معالج الأسلوب نظرًا لاستخدام تعريف متغير الكائنWithEvents (Visual Basic)معالج.

    في هذا المثال ReferencesEventsخاصة إلى #Visual Cالمشاريع. إلى الاستجابة إلى الأحداث الخاصة إلى Visual Basicالأحداث، استبدال السلسلة CSharpReferencesEventsمع VBReferencesEvents. لمزيد من المعلومات حول كيف يتم إلى تحديد السلاسل إلى استخدام أحداث خاصة إلى الأنواع المختلفة من مشاريع راجع حدث الكائنات (محددة بأنواع المشاريع).

  8. إضافة إجراءات لكل حدث المتعلقة إلى كائن الحدث. على سبيل المثال، لمعالجة الأحداث التي تحدث عند تمت الإضافة مرجع ستستخدم:

    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
    

    في الحالة الخاصة ReferencesEventsيجب أن يكون لديك المعرّفة من أجل الأحداث ReferenceAdded، ReferenceRemoved، ReferenceChanged، كما هو موضح في قائمة كاملة المثال أدناه.

  9. وأخيراً، لمنع Visual Studioمن إبطاء النظام الخاص بك قبل المتابعة لمراقبة أحداث متعلقة بـ النافذة بعد يغلق إضافة - ضمنه، معالجة الحدث يعطل. في Visual Basic, ويتم تنفيذ ذلك عن طريق تعيين معالج الأحداث إلى Nothing.

    Public Sub OnDisconnection(ByVal RemoveMode As_
     Extensibility.ext_DisconnectMode, ByRef custom As System.Array)_
     Implements Extensibility.IDTExtensibility2.OnDisconnection
        refEvents = Nothing
    End Sub
    

    هذا بيوقف التشغيل معالجة الحدث ما إذا كان إضافة - في ، متوقف عن التشغيل أو يوقف التشغيل IDE الوقت إلى الأسفل إضافة - في لا يزال قيد التشغيل. عند إيقاف IDE كافة تشغيل إضافة-زر 'زر 'Ins'' الإضافية تلقائياً إيقاف الأول.

مثال

المثال التالي هو أساسية Visual Studioالوظيفة الإضافية التي يوضح كيفية اعتراض و مؤشر #Visual Cالأحداث المرجع في Visual Studio. عند حدوث حدث مرجع يتم إرسال رسالة إعلام إلى النافذة إخراج.

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

التحويل البرمجي للتعليمات البرمجية

إلى يحول برمجياً هذه التعليمة البرمجية إنشاء جديد Visual Studioإضافة-in المشروع واستبدالها رمز أسلوب OnConnection مع تعليمات برمجية الموجودة في المثال. لمزيد من المعلومات حول كيفية إلى تشغيل وظيفة الإضافية "، راجع كيفية: عنصر تحكم الوظائف الإضافية مع إدارة الوظائف الإضافية.

راجع أيضًا:

المهام

كيفية القيام بما يلي: الاستجابة إلى الأحداث في مشروع محددة (Visual Basic)

المرجع

يستورد بيان (.NET مساحة الاسم والنوع)

موارد أخرى

استجابة إلى أحداث التنفيذ التلقائي

استجابة إلى أحداث (Visual Basic و ‏‫#Visual C المشاريع)