الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Events in VB.NET

مغلق
بدأه hazzoom في 20 أكتوبر 2005 · 8 رد · 2,453 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

استكمالا لسلسلة دروس الـ OOP in VB.NET أردت تقديم درس في الـ Events ,

وعلي الرغم من الأخ محمد سامر samerselo قد قدم فيها درس من فترة الا اني أردت أن أستكمل السلسلة وأن أقدم الدرس بصورة أخري بحيث يكمل كل منهما الآخر (وأرجو ألا يجعل ذلك بيني وبين الأخ محمد أي حساسيات) ,

موضوع الأخ محمد سامر Samerselo

كثيرا ما نسمع الكلمات الآتيه :

Event, Event Handler,Handles,AddHandler,RemoveHandler ونجدها في الأكواد ولا نعرف معناها ,

فكلمة Event تعني حدث أما كلمة Event Handler تمثل الاجراء الذي سيتم تنفيذه عندما يتم رفع أو تنفيذ الحدث ,

كلمة Handles تستخدم لالحاق اجراء ما بحدث أو ما يسمي Assignment للاجراء بالحدث , ومثلها كلمة AddHandler , وبالطبع عكسهما كلمة RemoveHandler ,

بدلا من الكلام دعونا نعمل بالأمثلة :

افتح معي مشروعا جديدا وسميه Events وأنشئ Class جديده باسم Myevents ,

الخطوه الأولي هي الاعلان عن الحدث ويتم ذلك بكتابة العباره Public Event متبوعه باسم الحدث ,

Public Event Event1()

بعد أن أعلنا عن الحدث الذي نريد كيف نجعل الحدث يعمل أو كيف نرفع الحدث ? How to raise the event :

يتم ذلك من خلال اجراء يحتوي علي العباره RaiseEvent متبوعه باسم الحدث المراد تنفيذه ,

Sub CauseEvent()
RaiseEvent Event1()
End Sub

الآن لكي نجرب الحدث الذي أنشأناه هناك طريقتين الفرق بينهما بسيط وكلاهما جيد ,

الان نذهب الي الفورم وفي منطقة الاعلان عن المتغيرات أكتب :

Dim WithEvents x As New MyEvents

في السطر السابق أنشأنا Object للكلاس Myevents بالأحداث التي تحتويها ,

ثم نضع زر علي الفورم وفي حدث الضغط عليه نكتب :

x.CauseEvent()

في السطر السابق قمنا بتشغيل الاجراء الذي سيقوم برفع الحدث أو تشغيله ,

قم بتحرير الحدث كما بالصوره :

20_10_05_10_56_47_11298310071.JPG

وسوف تنتقل الي منطقة الحدث واكتب بداخلة ما تريد ,

ثم قم بتشغيل البرنامج وأضغط علي الزر وانظر النتيجه ,

في الطريقة السابقة أريد أن نلقي نظره علي التركيب البنائي للحدث :

Private Sub x_Event1() Handles x.Event1
MsgBox("I did it")
End Sub

نجد أنه تم كتابة Private Sub x_Event1() Handles x.Event1 أي أن الاجراء الذي اسمه x_Event1 يعالج الحدث Event1 الخاص بالـ Object الذي اسمه x :

هناك طريقة أخري لتحرير الحدث ولكن يدويه وتكون عن طريق كتابة العبارة AddHandler بالصوره الآتيه :

AddHandler x.Event1, AddressOf Me.EventHandler

ثم تشغيل الحدث بتشغيل الاجراء الحدث الذي يحتوي علي العباره RaiseEvent Event1 في الكلاس كالآتي :

x.CauseEvent()

ثم كتابة العباره RemoveHandler لكي نزيل الـ Handling من الحدث :

RemoveHandler x.Event1, AddressOf EventHandler

قم بتشغيل البرنامج وانظر النتيجه ,

ملحوظه : لو قمت بعمل الطريقتين في وقت واحد ستجد أنه يتم تنفيذ اجرائين في نفس الوقت ,,,

أرجو أن يكون الدرس قد أعجبكم واستفدتم منه إن شاء الله , والموضوع مفتوح للمناقشه والاستفسار ,,,

تم تعديل هذه المشاركة بواسطة hazzoom في 22 أكتوبر 2005 في 16:25

#2
اقتباس
أرجو أن يكون الدرس قد أعجبكم واستفدتم منه إن شاء الله , والموضوع مفتوح للمناقشه والاستفسار ,,,

تمام حززوم نفع الله بعلمك الامه وغفر لك ذنبك فى هذا الشهر الكريم...اميـــــــــــــــن

واسمحلى اضيف شوى...

وهو الفرق بينWithEvents وAddHandler الاولى تكون لمؤشر الكائن وتنتهى بنهاية هذا الموشر اما الثانية فتمثل الكائن بحد ذاته يعنى تستمر فى الاستجابه للحدث حتى تدخل GCوازاله الكائن من الذاكرة نهائيا

وايضا فى تعريف الاحداث يفضل التزام بالصيغة القياسية للدوت نت يعنى الحدث يكون عنده 2 بارميتر الاولsender يمثل الكائن والثانية

e وتمثل البارميترات الى يرسلها الحدث

Public Event Event1(byval sender as system.object,byval e as system.eventarg)

اطلاق الحدث

RaiseEvent Event1(me,new system.eventargs())

تم تعديل هذه المشاركة بواسطة SOLO.NET في 20 أكتوبر 2005 في 21:28

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

شكرا علي الاضافة القيمة يا أخ عبد الخالق ,

أما الجزء الثاني أنا قاصد أتركه لأنه موجود في درس الأخ محمد سامر ,,,

تم تعديل هذه المشاركة بواسطة hazzoom في 20 أكتوبر 2005 في 21:39

#4

شكرا لك أخ hazzoom على المعلومات المفيدة وجزاك الله خيرا

وإن كنت تقصد موضوعي منذ فترة بعنوان

معلومة: كيف تستطيع إطلاق أحداثك الخاصة, RaiseEvent Tutorial

فإليك رابط الموضوع مباشرة هنا في ردي تفضل

معلومة: كيف تستطيع إطلاق أحداثك الخاصة

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#5

جزاك الله خيرا

استمر في الكلاسات اخي هذا هو طريقنا لللاحتراف

#7

السلام عليكم ورحمة الله وبركاته

عندى سؤال , انا بستخدم vb6 وعندما أكتب السطر التالى dim withevents se as new class1

تظهر invalid use of new keyword

#8

شرح ممتاز يا حازووووووم

AlexCard.gif

Business Card

Ahmad Fathy Ahmad

Computer and Systems Department

Faculty of Engineering, Alexandria University

Cellular: +2 010 1461154

E-mail: midoalx@hotmail.com

ICQ: 148481391

#9
ALAZHARY كتب:
السلام عليكم ورحمة الله وبركاته

عندى سؤال , انا بستخدم vb6 وعندما أكتب السطر التالى dim withevents se as new class1

تظهر invalid use of new keyword

هذا الدرس حصريا لـ VB .net لن تستطيع استخدامه مباشرة من ضمن VB6

على كل حال في المرفقات مثال عن الطريقة الخاصة بـ VB6

VB6_Simple_Example.zip

تم تعديل هذه المشاركة بواسطة samerselo في 15 أغسطس 2006 في 16:23

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

هذا الموضوع مغلق.

مواضيع مشابهة