14-05-13, 11:50 PM
ali.alfoly كتب :جزاك الله خيرا
وزادك علما
كل يوم نتعلم منك الجديد
لى سؤال بالنسبة لـ
e
ارجو توضيحها
السلام عليكم ورحمة الله وبركاته
وجزاك بأحسن منه أخي الحبيب
بالنسبة للمتغير e
فهو عبارة عن مجموعة باراميترات يتم تمريرها مع الحدث ... وطبعا تختلف تلك الباراميترات باختلاف الحدث وفي بعض الأحداث تكون قيمة المتغير فيها تساوي Empty مثل (Form1_Load)
ولو أخذنا مثلا الحدث Button1_Click كما في الكود في المشاركة السابقة
فسنجد العبارة التالية (ByVal e As System.EventArgs)
فكيف سنستفيد من الباراميترات الموجودة داخل e؟
في البداية جميعنا يعلم أن هذا الحدث له عدة طرق لإطلاقه على سبيل المثال (الفأرة أو الضغط على زر الرجوع "Enter") وفي كل حالة ستختلف قيمة المتغير e فإذا كان إطلاق الحدث عن طريق الضغط على زر الرجوع فعندها ستكون قيمة المتغير e هي Empty
أما إذا كان عن طريق الماوس فإن المتغير e سيكون من النوع (System.Windows.Forms.MouseEventArgs)
أي نفس المتغير الذي سيتم تمريره في الحدث (Button1_MouseDown)
الآن سنقوم بتحويل المتغير إلى النوع الحقيقي له ولكن بعد أن نتأكد من أنه ليس Empty
وبعد ذلك سنستفيد من الباراميترات التي تم تمريرها لاحظ الكود التالي
وقارن الشرح مع الكود بحسب الألوان
كود :
Private Sub [color=#8b4513]Button1_Click[/color](ByVal sender As System.Object, [color=#FF0000]ByVal e As System.EventArgs[/color]) Handles Button1.Click
[color=#0000FF]If Not e.Equals(System.EventArgs.Empty) Then[/color]
[color=#008000] Dim New_e As System.Windows.Forms.MouseEventArgs = CType(e, System.Windows.Forms.MouseEventArgs)[/color]
[COLOR=#800080] MsgBox(New_e.Button)
MsgBox(New_e.Clicks)
MsgBox(New_e.Delta)
MsgBox(New_e.Location.ToString)
MsgBox(New_e.X)
MsgBox(New_e.Y)
[/COLOR][color=#0000ff] End If[/color]
End Sub
بالتوفيق