سؤال

ولدي حوالي 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top