2013-08-23 4 views
0

J'ai plusieurs boutons à côté de différents types de zones de texte dans la fenêtre qui exécutent le même type de flux. J'ai décidé de regrouper tous les événements _click en un seul événement en ajoutant des délimiteurs de virgules avec des poignées. Y at-il un moyen de dire quel bouton a été cliqué sur une propriété afin que je puisse activer uniquement ces champs de texte spécifiques en utilisant une déclaration de cas ou quelque chose dans cette mesure? Comme tout est géré par un seul clic (puisque je ne voulais pas faire plus de 10 clics pour exécuter la même fonction que les autres boutons, enregistrer le code et la lisibilité) est-il possible de savoir quel bouton a été cliqué?Transmettre des données lorsque vous cliquez sur un bouton?

Répondre

1

Dans votre délégué, vous avez deux arguments: l'expéditeur d'objets, et EventArgs e. Juste jeté objet émetteur sur l'objet de bouton, et vous pouvez faire face à un bouton et ses toutes les propriétés:

private void button_Click(object sender, EventArgs e) 

     { 
      Button btn = sender as Button; 
      string name = btn.Name; 
     } 

EDIT: Je suis désolé, n'a pas remarqué l'étiquette VB.NET, mais je quitterons ma réponse juste au cas où;)

+0

Cela pourrait facilement être converti en code VB. Pour moi, cela semble correct! – Recipe

1

Vous pouvez essayer quelque chose comme ceci:

Public Sub YourEventHandlerName(sender As object, e As EventArgs) 
    Select CType(sender, Button).Name 
     Case "Button1_Name" 
      'Do what ever you wanted to do in here 
     Case "Button2_Name" 
      'Do what ever you wanted to do in here 
    End Select 
End Sub 
+0

pour être honnête, si cela est la pensée réelle d'utilisation, je préfère voir un gestionnaire d'événements pour chaque bouton. C'est beaucoup plus propre et beaucoup plus facile à entretenir. De cette façon, vous êtes coincé avec des noms codés en dur sous forme de chaînes ... – Recipe

Questions connexes