الثانوية العامة 2026الاستعلام عن النتيجةاعرف الكليات المناسبة لمجموعكتنسيق 2026

الحاسب الآلي · الصف الثالث الإعدادي · الترم الأول

معالج الحدث Event Handler والصيغة العامة له

تعريف معالج الحدث Event Handler في VB.NET، والصيغة العامة Handles، وكيفية ربط أكثر من حدث بنفس الإجراء البرمجي.

آخر تحديث: · كيف نراجع المحتوى

المحتوى الرئيسي

مفهوم الحدث 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 هذه، يصبح الإجراء إجراءً عاديًّا لا يُستدعى تلقائيًّا عند وقوع أي حدث.

سطر معالج الحدث Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click مقسمًا إلى أجزائه: بداية الإجراء واسمه والمعاملان وعبارة Handles التي تربطه بالحدث

إنشاء معالج الحدث من نافذة الخصائص

بدلًا من كتابة معالج الحدث يدويًّا، يمكن إنشاؤه تلقائيًّا بالطريقتين التاليتين:

  1. النقر المزدوج على الأداة في نافذة التصميم، مما ينشئ معالج الحدث الافتراضي لها (غالبًا Click للأزرار).
  2. من نافذة الخصائص (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.

أسئلة للمراجعة

  1. عرّف معالج الحدث Event Handler بأسلوبك الخاص.
  2. ما الجزء من صيغة معالج الحدث المسؤول عن ربطه فعليًّا بالحدث والكائن؟ وما أثر حذفه؟
  3. اذكر طريقتين لإنشاء معالج حدث في Visual Studio دون كتابته يدويًّا بالكامل.
  4. اكتب معالج حدث واحد يُنفَّذ سواء ضُغط على الزر btnSave أو الزر btnUpdate، ويعرض رسالة “تم الحفظ”.
  5. ما الفرق بين البرمجة المتسلسلة التقليدية والبرمجة المُوجَّهة بالأحداث المستخدَمة في VB.NET؟
الأهداف العامة
  • أن يعرّف الطالب مفهوم الحدث Event ومعالج الحدث Event Handler.
  • أن يكتب الطالب الصيغة العامة لمعالج الحدث في VB.NET بصورة صحيحة.
  • أن يربط الطالب أكثر من حدث بنفس معالج الحدث الواحد باستخدام Handles.
  • أن ينشئ الطالب معالج حدث من نافذة الخصائص عبر قائمة الأحداث (Events).
حلّ أسئلة هذا الدرساختبر فهمك بأسئلة اختيار من متعدد وأسئلة مقالية مع نموذج إجابة، أو خض اختبارًا تفاعليًا سريعًا
أبلغ عن خطأ في هذا الدرس