اسم كائن ذلك بدأ روتين فرعي باستخدام معالج إضافة

StackOverflow https://stackoverflow.com/questions/19839838

  •  29-07-2022
  •  | 
  •  

سؤال

مشكلتي هي أنه عندما يتم تشغيل الروتين الفرعي ، لا أعرف أي زر تسبب في تشغيله كيف يمكنني العثور على ذلك. يجب استبدال عدد المتغيرات برقم زر الحذف الذي تم النقر عليه. لا يمكنني الحصول على روتين فرعي منفصل لكل زر لأنني لا أعرف عدد المستخدم الذي يجب إضافته إلى النموذج في كل مناسبة.

    Dim delete1 = Sub()
        .Remove(label1(count, 1))
        .Remove(combo1(count, 1))
        .Remove(label1(count, 2))
        .Remove(combo1(count, 2))
        .Remove(label(count, 3))

                 End Sub

    For counter = 1 To count
        AddHandler MyClass.button1(counter).Click, delete1
    Next
هل كانت مفيدة؟

المحلول

يمكنك الحصول عليها من sender جدال:

Private Sub delete1(sender As System.Object, e As System.EventArgs)

    Dim curButton As Button = DirectCast(sender, Button) 'Button you clicked

End Sub

لاحظ أن الرمز لإضافة الوظيفة المذكورة أعلاه مباشرة (بدون delegate) هو:

AddHandler MyClass.button1(counter).Click, AddressOf delete1
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top