كيفية القيام بما يلي: الاستجابة إلى الأحداث في مشروع محددة (Visual Basic)
يتضمن طراز التنفيذ التلقائي الكائنات التي يمكن استخدامها للاستجابة للأحداث بيئة في Visual Studioبيئة التطوير المتكاملة (IDE). بيئة أحداث معينة إلى VSLangProjو VSLangProj80مشاريع تم تعريفها في #Visual Cو Visual Basic. على سبيل المثال، ImportsEventsتشغيل الحدث عند إضافتها إلى استيراد أو إزالتها من Importsمجموعة.
يستخدم هذا المثال Visual Basicإلى إضافة ReferencesEventsمعالج الأحداث تقتصر على نوع من المشروع أو إلى إضافة - في المشروع. ReferencesEventsيتم تشغيل الحدث عند تغير مرجع تمت الإضافة إلى, أو إزالتها من#Visual CأوVisual Basicالمشروع.
ملاحظة
قد تختلف مربعات الحوار وأوامر القائمة التى تشاهدها الان عن تلك الموصوفة في التعليمات اعتماداً على الإعدادات النشطة أو الإصدار الخاص بك. تم تطوير هذه الإجراءات من خلال "إعدادات تطوير عام" النشط. لتغيير الإعدادات الخاصة بك, اختر إعدادات الاستيراد و التصدير ضمن القائمة أدوات . لمزيد من المعلومات، راجع العمل مع إعدادات.
إلى مؤشر الأحداث المتعلقة بـ النافذة باستخدام Visual Basic
إنشاء Visual Studioالمشروع الوظيفة الإضافية في Visual Basic.
إضافة Imports VSLangProjإلى أعلى الملف يعيّن.vb.
تشغيل القائمة مشروع، انقر فوق إضافة مرجع، انقر فوق علامة تبويب .NET تحديد VSLangProj VSLangProj2 VSLangProj80 ثم انقر فوق موافق .
في الفئة يعيّن يهيّئ متغير إلى مؤشر 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. للحصول إكمال قائمة الأحداث التي تحدث في أنواع المشاريع راجع حدث الكائنات (محددة بأنواع المشاريع). للحصول على قائمة أحداث التنفيذ التلقائي العامة راجع كائنات أحداث التنفيذ التلقائي.
في OnConnectionأسلوب يهيّئ متغير إلى اعتراض الأحداث. في هذا المثال، تسمى المتغير winEvents.
Dim events As EnvDTE80.Events2 events = CType(_applicationObject.Events, Events2)
في OnConnectionأسلوب يهيّئ OutputWindowمتغير.
Dim outputWindow As OutputWindow outputWindow = CType(_applicationObject.Windows.Item _ (Constants.vsWindowKindOutput).Object, EnvDTE.OutputWindow) outputWinPane = outputWindow.OutputWindowPanes.Add_ ("Reference Event Information ")
في OnConnectionأسلوب استرداد الحدث الكائنات من طراز التنفيذ التلقائي.
refEvents = CType(events.GetObject("CSharpReferencesEvents"),_ ReferencesEvents)
Visual Studioتلقائياً بتوصيل معالج الأسلوب نظرًا لاستخدام تعريف متغير الكائنWithEvents (Visual Basic)معالج.
في هذا المثال ReferencesEventsخاصة إلى #Visual Cالمشاريع. إلى الاستجابة إلى الأحداث الخاصة إلى Visual Basicالأحداث، استبدال السلسلة CSharpReferencesEventsمع VBReferencesEvents. لمزيد من المعلومات حول كيف يتم إلى تحديد السلاسل إلى استخدام أحداث خاصة إلى الأنواع المختلفة من مشاريع راجع حدث الكائنات (محددة بأنواع المشاريع).
إضافة إجراءات لكل حدث المتعلقة إلى كائن الحدث. على سبيل المثال، لمعالجة الأحداث التي تحدث عند تمت الإضافة مرجع ستستخدم:
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، كما هو موضح في قائمة كاملة المثال أدناه.
وأخيراً، لمنع 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 مساحة الاسم والنوع)