Événement pour Cliquer sur un bouton (C# windows forms)
Je suis l'élaboration d'un programme qui a beaucoup de boutons qui devrait faire une action similaire lorsque l'utilisateur clique dessus, mais avec une petite différence sur la base de quel bouton a été cliqué.
Le problème est que la seule voie directe est ce code pour chaque bouton, ce qui est une tâche répétitive. Est-il un moyen de programmer simplement un bloc qui serait le clic sur un bouton et le bouton qui a été cliqué?
Pourquoi ne pas simplement le code d'une méthode unique qui est appelé à partir de chaque gestionnaire de bouton avec un paramètre différent?
Ce serait encore répétitives. J'ai plus de 70 boutons, et que j'aie encore à titre individuel, de mettre chaque bouton paramètre et là... Et si jamais j'ai changé la méthode de recevoir d'autres paramètres, je serais obligé de tout changer à nouveau...
Alors pourquoi ne pas vous attribuer le même gestionnaire de la
mais cette propriété vous dit ce bouton de la souris a été pressé, pas le contrôle sur le Formulaire.
Si vous êtes à l'aide de 70 contrôles distincts, alors quelque chose quelque part doit point leur événement OnClick à un gestionnaire. Si c'est un problème de l'-vous besoin de 1 de contrôle, avec un clic de l'événement, avec 70 zones distinctes qui peuvent être cliqué.
Ce serait encore répétitives. J'ai plus de 70 boutons, et que j'aie encore à titre individuel, de mettre chaque bouton paramètre et là... Et si jamais j'ai changé la méthode de recevoir d'autres paramètres, je serais obligé de tout changer à nouveau...
Alors pourquoi ne pas vous attribuer le même gestionnaire de la
MouseClick
cas de tous les boutons. Le gestionnaire de MouseEventArgs
paramètre a la Button
propriété qui vous donne la touche qui a été pressée.mais cette propriété vous dit ce bouton de la souris a été pressé, pas le contrôle sur le Formulaire.
Si vous êtes à l'aide de 70 contrôles distincts, alors quelque chose quelque part doit point leur événement OnClick à un gestionnaire. Si c'est un problème de l'-vous besoin de 1 de contrôle, avec un clic de l'événement, avec 70 zones distinctes qui peuvent être cliqué.
OriginalL'auteur Kiloku | 2012-09-23
Vous devez vous connecter pour publier un commentaire.
Attribuer le même gestionnaire d'événements pour tous les boutons.
Ou vous pouvez sélectionner le même gestionnaire d'événement dans la fenêtre des propriétés de commutation à des événements (icône de flash).
Vous pouvez également ajouter quelques informations utiles à la
Tag
propriété pour la désambiguïsation. Et le dernier mais non le moindre, vous pouvez tirer votre propre bouton deButton
et ajouter des propriétés appropriées. Ils vont même apparaître dans la fenêtre des propriétés.OriginalL'auteur Adam
Créer un bouton gestionnaire de clic en double-cliquant sur l'un de ces boutons. Mais au lieu de faire la même chose avec les autres boutons, accédez à la fenêtre des propriétés et de passer à des événements de point de vue. Maintenant, sélectionnez chacun des boutons restant à leur tour et de choisir le juste créé, cliquez sur gestionnaire de la liste déroulante de la
Click
cas des autres boutons dans la Fenêtre des propriétés. Maintenant, ils déclenchent la même méthode quand on clique dessus.Ou vous pouvez définir une valeur pour le
Tag
propriété des boutons dans la fenêtre des propriétés et de l'utiliser directement sans avoir à utiliser un interrupteur ou si l'instruction.Vous pouvez aussi tester des boutons spécifiques directement avec
sender == button1
, mais cela ne fonctionne pas dans une instruction switch.Il pourrait être plus facile de créer votre propre bouton découlant de
Button
et à ajouter les propriétés requises. Une fois compilé, le bouton s'affiche dans la boîte à outils et vos propriétés peuvent être définies dans la fenêtre propriétés.Utilisation:
OriginalL'auteur Olivier Jacot-Descombes
Je voudrais juste utiliser le même événement click, et à condition de vérifier l'expéditeur pour le bouton qui a été cliqué
Ou d'une instruction switch..
OriginalL'auteur Jason Eades
Oui, vous pouvez créer un seul Bouton, Cliquez sur Gestionnaire d'Événement et de le raccorder avec tous les boutons à l'aide de visual studio designer.
C'est simple, il suffit de suivre ces étapes:
1) Créer btn_click gestionnaire d'événement pour un bouton en double-cliquant sur n'importe quel bouton.
2) Pour tous les autres boutons, cliquez du bouton droit sur n'importe quel bouton, cliquez sur propriétés, aller à des événements, sur l'événement "Click", sélectionnez btn_click à partir de la liste déroulante.
Si vous voulez des fonctionnalités différentes dans les différents boutons dans le même gestionnaire d'événements, vous pouvez abattu l'expéditeur paramètre de type de Bouton et ensuite utiliser son Nom de la propriété de différence entre les boutons.
Voici un exemple:
OriginalL'auteur Amit Mittal