Pregunta

Mi problema es que cuando se ejecuta la subrutina, no sé qué botón hizo que se activara, ¿cómo puedo encontrar esto? El recuento de variables debe reemplazarse con el número de botón Eliminar que se hizo clic. No puedo tener una subrutina separada para cada botón, ya que no sé cuántos se necesita agregar el usuario al formulario en cada ocasión.

    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
¿Fue útil?

Solución

Puedes obtenerlo del sender argumento:

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

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

End Sub

Tenga en cuenta que el código para agregar la función mencionada directamente (sin delegate) es:

AddHandler MyClass.button1(counter).Click, AddressOf delete1
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top