Le nom d'objet de ce sous-programme a commencé à l'aide d'ajout de gestionnaire

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

  •  29-07-2022
  •  | 
  •  

Question

Mon problème est que lorsque le sous-programme s'exécute, je ne sais pas quel bouton l'a fait déclencher, comment puis-je le découvrir. Le nombre de variables doit être remplacé par le numéro de bouton Supprimer qui a été cliqué. Je ne peux pas avoir un sous-programme séparé pour chaque bouton car je ne sais pas combien l'utilisateur doit être ajouté au formulaire à chaque occasion.

    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
Était-ce utile?

La solution

Vous pouvez l'obtenir à partir du sender dispute:

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

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

End Sub

Notez que le code pour ajouter directement la fonction susmentionnée (sans delegate) est:

AddHandler MyClass.button1(counter).Click, AddressOf delete1
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top