2010-11-24 3 views
1

que j'ai un sous-programme Button1Une meilleure façon de grouper des actions de boutons similaires?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     Dim buttonText As String = Button1.Text 
     someOtherRoutine(buttonText) 
    End Sub 

J'ai beaucoup de ces boutons dans ma principale forme. Ils font tous la même chose comme ça. obtenir le texte et passer à une autre routine. Si j'ai 20 boutons, j'aurai 20 sous-programmes. Existe-t-il un meilleur moyen (ou un moyen standard) de le faire sans créer autant de sous-programmes?

grâce

Répondre

3

Vous pouvez utiliser celui-ci sous-programme pour gérer tous des boutons:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
    Handles Button1.Click, _ 
    Handles Button2.Click, _ 
    ... 
    Handles Button20.Click 

     Dim myButton As Button = sender 
     Dim buttonText As String = myButton.Text 

     ... 

End Sub 
+0

Je pensais que vous deviez mettre une seule fois Handles. Like Handles Button1.Click, Button2.Click ... Vous devez nous indiquer envoyer pour obtenir le texte des boutons comme sender.Text. –

+0

@Ash Burlaczenko - réponse mise à jour avant que vous avez soumis votre commentaire;) – Oded

+0

Salut, pouvez-vous expliquer ce sous-programme? cela signifie-t-il que j'ai seulement besoin de cliquer sur Button1? Dans mon application, je dois cliquer sur Button2, Button3 et ainsi de suite, pas seulement Button1. merci – ghostdog74

1

Vous pouvez utiliser AddHandler ajouter le même gestionnaire d'événements pour chaque bouton ou vous pouvez utiliser une virgule liste séparée dans la clause Handles.

Sub EventHandler() Handles Obj.Ev_Event, Obj2.Ev_Event 
' Handle the event. 
MsgBox("EventHandler caught event.") 
EndSub 
Questions connexes