Имя объекта этого начало подпрограммы с помощью add gandler

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