معالجات الأحداث المشتركة في VB.NET
-
21-08-2019 - |
سؤال
ولدي حوالي 10 الأزرار على شكل بلدي وأريد منهم أن يتصلوا نفس معالج الحدث Click.
ولكن لأنني بحاجة إلى معالج الحدث لتعميمها وليس لدينا "هذه" الكلمة الرئيسية في VB.NET للإشارة إلى عنصر التحكم الذي تسبب في الحدث.
وكيف يمكنني تنفيذ وظائف "هذه" الكلمة الرئيسية في VB.NET؟
وأريد أن أكون قادرا على كتابة معالج حدث أن يفعل ما يلي:
Private Sub cmdButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdButton1.Click
currentTag = this.Tag
End Sub
المحلول
وكيف يمكنني تنفيذ وظائف "هذه" الكلمة الرئيسية في VB.NET؟
اقتباس فقرة> ويسمى this
Me
في VB. ومع ذلك، وهذا يجب أن تفعل مع التعليمات البرمجية الخاصة بك شيئا، ويشير إلى الطبقة التي تحتوي، في قضيتك على الارجح Form
الحالية. تحتاج إلى الوصول إلى المعلمة الكائن sender
، بعد الصب لControl
:
currentTag = DirectCast(sender, Control).Tag
نصائح أخرى
في VB.NET ، Me
هو ما يعادل this
C # الصورة.
وأعتقد أنك تريد الكلمة Me
.
في VB.NET this
ما يشار me
، والحل لسؤالك الثاني بشأن معالجات VB.NET هو: يمكنك إضافة Handles
في نهاية بيان Private Sub
، مثل:
Private Sub cmdButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles cmdButton1.Click, 'cmdButton2.click, cmdButton3.click'
currentTag = this.Tag
End Sub