الحاسب الآلي · الصف الثالث الإعدادي · الترم الأول
معالج الحدث Event Handler والصيغة العامة له
تعريف معالج الحدث Event Handler في VB.NET، والصيغة العامة Handles، وكيفية ربط أكثر من حدث بنفس الإجراء البرمجي.
آخر تحديث: · كيف نراجع المحتوى
معلومات الدرس
- المادة: الحاسب الآلي — حل المشكلات وبرمجة VB.NET
- الترم: الأول
- الفصل: الفصل الرابع: نافذة الكود (Code Window) — الموضوع: الثاني
المحتوى الرئيسي
مفهوم الحدث Event
الحدث (Event) هو أي فعل أو تفاعل يقع على أداة تحكم أثناء تشغيل البرنامج، مثل نقر المستخدم على زر (Click)، أو تغيير نص في صندوق كتابة (TextChanged)، أو تحميل نموذج (Load). تعتمد برمجة الواجهات الرسومية في VB.NET بالكامل على فكرة البرمجة المُوجَّهة بالأحداث (Event-Driven Programming)، حيث لا يُنفَّذ الكود بترتيب متسلسل ثابت، بل يُنفَّذ كل جزء منه فقط عند وقوع الحدث المرتبط به.
مفهوم معالج الحدث Event Handler
معالج الحدث هو إجراء (Sub) برمجي يحتوي على الأوامر التي ستُنفَّذ تلقائيًّا عند وقوع حدث معين على كائن معين. فبدلًا من أن يستدعي المبرمج هذا الإجراء بنفسه، تتولى بيئة التشغيل استدعاءه تلقائيًّا في اللحظة التي يقع فيها الحدث.
الصيغة العامة لمعالج الحدث
تتكون صيغة معالج الحدث في VB.NET من الشكل التالي:
Private Sub اسم_الكائن_اسم_الحدث(sender As Object, e As EventArgs) Handles اسم_الكائن.اسم_الحدث
' الأوامر المراد تنفيذها عند وقوع الحدث
End Sub
مثال عملي لمعالج حدث النقر على زر باسم Button1:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox("تم تنفيذ الحدث")
End Sub
شرح أجزاء الصيغة:
- Private Sub: بداية إجراء خاص بهذا النموذج فقط.
- اسم الإجراء (Button1_Click): اسم اختياري يمكن تغييره، لكن العرف المتّبع هو
اسم_الأداة_اسم_الحدثلسهولة القراءة. sender As Object: معامل (Parameter) يشير إلى الكائن الذي تسبب في وقوع الحدث.e As EventArgs: معامل يحمل معلومات إضافية عن الحدث نفسه.Handles اسم_الكائن.اسم_الحدث: الجزء الأهم؛ فهو الذي يربط فعليًّا بين هذا الإجراء والحدث المحدد لأداة معينة. بدون كلمةHandlesهذه، يصبح الإجراء إجراءً عاديًّا لا يُستدعى تلقائيًّا عند وقوع أي حدث.
إنشاء معالج الحدث من نافذة الخصائص
بدلًا من كتابة معالج الحدث يدويًّا، يمكن إنشاؤه تلقائيًّا بالطريقتين التاليتين:
- النقر المزدوج على الأداة في نافذة التصميم، مما ينشئ معالج الحدث الافتراضي لها (غالبًا Click للأزرار).
- من نافذة الخصائص (Properties)، بالضغط على أيقونة البرق ⚡ (Events) لعرض كل الأحداث المتاحة للأداة المختارة، ثم النقر المزدوج على اسم الحدث المطلوب (مثل TextChanged أو Load) لإنشاء معالجه تلقائيًّا.
ربط أكثر من حدث بنفس الإجراء
تسمح VB.NET بربط أكثر من حدث واحد (سواء لنفس الأداة أو لأدوات مختلفة) بمعالج واحد فقط، وذلك بفصل الأحداث بفاصلة بعد كلمة Handles. هذا مفيد جدًّا عندما يكون سلوك الأدوات المختلفة عند وقوع أحداثها متطابقًا:
Private Sub Buttons_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click
MsgBox("تم الضغط على أحد الزرين")
End Sub
في هذا المثال، سيُنفَّذ نفس الكود سواء ضغط المستخدم على Button1 أو على Button2، دون الحاجة لكتابة معالجين منفصلين متطابقين.
إلغاء ربط حدث بمعالج
يمكن إزالة أحد الأحداث من قائمة Handles بحذف اسمه (والفاصلة المصاحبة له إن لزم) دون التأثير على بقية الأحداث المرتبطة بنفس الإجراء.
النقاط الرئيسية
- الحدث Event هو أي تفاعل يقع على أداة تحكم أثناء التشغيل، مثل Click أو TextChanged أو Load.
- معالج الحدث Event Handler هو إجراء Sub يحتوي على الأوامر التي تُنفَّذ تلقائيًّا عند وقوع الحدث.
- كلمة Handles هي الجزء المسؤول فعليًّا عن ربط الإجراء بالحدث والكائن المحدد.
- يمكن إنشاء معالج حدث بالنقر المزدوج على الأداة، أو من قائمة الأحداث (أيقونة البرق) في نافذة الخصائص.
- يمكن ربط أكثر من حدث بنفس معالج الحدث الواحد بفصلها بفاصلة بعد كلمة Handles.
أسئلة للمراجعة
- عرّف معالج الحدث Event Handler بأسلوبك الخاص.
- ما الجزء من صيغة معالج الحدث المسؤول عن ربطه فعليًّا بالحدث والكائن؟ وما أثر حذفه؟
- اذكر طريقتين لإنشاء معالج حدث في Visual Studio دون كتابته يدويًّا بالكامل.
- اكتب معالج حدث واحد يُنفَّذ سواء ضُغط على الزر btnSave أو الزر btnUpdate، ويعرض رسالة “تم الحفظ”.
- ما الفرق بين البرمجة المتسلسلة التقليدية والبرمجة المُوجَّهة بالأحداث المستخدَمة في VB.NET؟
الأهداف العامة
- أن يعرّف الطالب مفهوم الحدث Event ومعالج الحدث Event Handler.
- أن يكتب الطالب الصيغة العامة لمعالج الحدث في VB.NET بصورة صحيحة.
- أن يربط الطالب أكثر من حدث بنفس معالج الحدث الواحد باستخدام Handles.
- أن ينشئ الطالب معالج حدث من نافذة الخصائص عبر قائمة الأحداث (Events).