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

هل يوجد حدث على مستوى الفورم ........

مغلق
بدأه عبد من عباد الله في 22 أبريل 2005 · 1 رد · 525 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني الكرام شموع المنتدى .. اسعد الله اوقاتكم بكل خير ...

كيف استطيع ان ارصد الحدث عند انتقال التركيز من كنترول الى اخر في فورم طبعا بدون استخدام احداث الكنترولات داخل كل كنترول .. يعني ربما يقول لي احد ارصد الحدث Enter للكنترول لكن انا اقصد على مستوى الفورم .. طبعا جربت حدث keyDown على مستوى الفورم ولكنه لم يوصلني الى النتيجة التي كنت ارغب فيها ، ولا يتفاعل مع مفتاح Tab .. اخير لكم الشكر سلفا .

#2

السلام عليكم

في مثل هذه الحالات لا ينفع إلا الإنتخاب وهي وظيفة تعرف بـ Delegate

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

مثلاً لمراقبة العناصر على النموذج عند إيجاد التركيز GotFocus سيكون بهذا الشكل

'Delegate That Monitor the (Got Focus) of any Control
    Private Sub MonitorGotFocus(ByVal sender As Object, _
    ByVal e As System.EventArgs)
        Me.Label1.Text = _
        "You are in the Control Name : " & sender.name.ToString
    End Sub

الخطوة الثانية فقط أن نقوم بربط أحداث العناصر بهذا الإجراء أو مجازاً الـ Delegate بهذا الشكل

 Dim crl As Control
        For Each crl In Me.Controls
            AddHandler crl.GotFocus, AddressOf MonitorGotFocus
                  Next

هذا الكلام ينطبق على جميع الأحداث بشرط أن يتوافق الـ Delegate مع الممررات للحدث Arguments

والله أعلم

ControlsMonitor.zip

في المثال يتضح المقال

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

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