Visual Basic و معالجة حدث WPF

للحصول على Microsoft Visual Basic .NET اللغة خاصا، يمكنك استخدام محدد اللغة Handles الكلمة الأساسية لربط معالجات الأحداث بمثيلات بدلاً من إرفاق معالجات الأحداث بسمات أو باستخدام AddHandler الأسلوب. ومع ذلك، Handles تقنية إرفاق معالجات إلى مثيلات لديها بعض القيود لأن Handles بناء جملة لا تدعم بعض توجيه الأحداث ميزات معينة WPF نظام الأحداث.

باستخدام "معالجات" في تطبيق WPF

معالجات الأحداث المتصلة بالمثيلات و الأحداث مع Handles يجب تعريفها كلها داخل تعريف فئة جزئية للمثيل الذي هو أيضاً من متطلبات معالجات الأحداث التي يتم تعيينها من خلال قيم السمات للعناصر. يمكنك فقط تحديد Handles لعنصر على الصفحة التي تحتوي Name قيمة الخاصية (أو س: اسم السمة معرفة). ويرجع ذلك إلى Name في XAML بإنشاء مرجع المثيل اللازم الذي يدعم Instance.Event تنسيق المرجع المطلوب بواسطة بناء الجملة Handles . العنصر الوحيد الذي يمكن استخدامه Handles بدون Name المرجع هو مثيل عنصر الجذر الذي يعرف الفئة الجزئية.

يمكنك تعيين نفس المعالج لعناصر متعددة بواسطة المراجع Instance.Event بعد Handles بالفواصل.

يمكنك استخدام Handles لتعيين معالج واحد أو أكثر لنفس المرجع Instance.Event. عدم تعيين أي أهمية للترتيب إعطاء المعالجات في Handles مرجع; يجب أن تفترض أن يمكن استدعاء المعالجات التي تعالج نفس الحدث في أي ترتيب.

لإزالة معالج تمت إضافته ب Handles في التعريف ، يمكنك استدعاء RemoveHandler.

يمكنك استخدام Handles لإرفاق معالجات لـ توجيه الأحداث ، طالما تقوم بإرفاق معالجات للمثيلات التي تعرف الحدث الذي يتم معالجته في جداول الأعضاء الخاصة بهم. للحصول على توجيه الأحداث ، المعالجات المتصلة ب Handles تتبع نفس قواعد التوجيه كما تفعل المعالجات التي يتم إرفاقها ك XAMLسمات، أو بالتوقيع الشائع AddHandler. وهذا يعني أنه إذا تم بالفعل وضع علامة على الحدث على أنه معالج (Handled الخاصية في بيانات الحدث True) ، ثم إرفاق معالجات ب Handles لا يتم استدعاءها كاستجابة إلى مثيل الحدث ذلك. قد يتم وضع علامة على الحدث على أنه معالج بواسطة معالجات المثيل لعنصر آخر في التوجيه أو بواسطة معالجة الفئة إما على العنصر الحالي أو إصدار سابق على طول التوجيه. لأحداث الإدخال التي تدعم الأحداث المزدوجة النفق/الفقاعية, توجيه النفق قد وضع علامة على معالجة زوج الحدث. للحصول على المزيد من المعلومات عن الأحداث الموجهة، راجع نظرة عامة حول الأحداث الموجهة.

قيود من "معالجات" لإضافة معالجات

Handles لا يمكن رجوع المعالجات لـ الأحداث المرفقة . يجب عليك استخدام add أسلوب استرجاع القيمة لذلك الحدث المرفق أو سمات حدث typename.eventname في XAML. للمزيد من التفاصيل ، راجع نظرة عامة حول الأحداث الموجهة.

توجيه الأحداث ، يمكنك استخدام فقط Handles لتعيين معالجات عن مثيلات حيث يوجد ذلك الحدث في مثيل أعضاء الجدول. ومع ذلك، يمكن للأحداث الموجهة بشكل عام, أن يكون عنصر الأصل موزع رسائل لحدث من العناصر التابعة حتى إذا لم يكن عنصر أصل ذلك الحدث في جدول الأعضاء الخاص به. في سمة بناء الجملة، يمكنك تحديد هذا من خلال سمة نموذج typename.membername التي تأهل أي نوع حدث تريد معالجته بالفعل. على سبيل المثال، أصل Page ( بدون Clic تعريف الحدث) يمكن الاستماع لأحداث انقر فوق الزر بواسطة تعيين معالج سمة في النموذج Button.Click. ولكن Handles لا يدعم نموذج typename.membername لأن يجب أن يدعم النموذج المتعارض Instance.Event. للمزيد من التفاصيل ، راجع نظرة عامة حول الأحداث الموجهة.

Handles لا يمكن إرفاق معالجات التي يتم استدعاء بها الأحداث المعلمة بالفعل بمعالجة. بدلاً من ذلك، يجب استخدام تعليمات برمجية و استدعاء handledEventsToo زيادة التحميل من AddHandler(RoutedEvent, Delegate, Boolean).

ملاحظةملاحظة

لا تستخدم Handles بناء الجملة في Visual Basic التعليمات البرمجية عند تعيين معالج الأحداث للحصول على نفس الحدث في XAML.في هذه الحالة، يتم استدعاء معالج الأحداث مرتين.

كيفية تنفيذ "معالجة" الأداء بواسطة WPF

عند Extensible Application Markup Language (XAML) يتم تحويل الصفحة برمجياً بتعريف الملف المتوسطFriend WithEvents يرجع لكل عنصر على الصفحة التي تحتوي على Name مجموعة الخصائص (أو س: اسم السمةالتصريح). كل مثيل مسمى من المحتمل أن يكون عبارة عن عنصر يمكن تعيينه لمعالج من خلال Handles.

ملاحظةملاحظة

ضمن Microsoft Visual Studio ، IntelliSense يمكن إظهار الإكمال للعناصر المتوفرة Handles المرجع في الصفحة.ومع ذلك، قد يستغرق هذا مرور ترجمة واحدة بحيث يملأ الملف المتوسط كافة Friends مراجع.

راجع أيضًا:

المرجع

AddHandler

المبادئ

وضع علامة على توجيه الأحداث كمعالجة و معالجة الفئة

نظرة عامة حول الأحداث الموجهة

نظرة عامة على XAML (WPF)