L'onglet qui a été cliqué sur le tabcontrol événement Clic de souris
Je suis en train d'apprendre comment développer des applications Windows Forms avec Visual Basic Express 2008, et mes tests/demande de formation a un TabControl avec quelques pages de test (3, par exemple, le nombre n'est pas pertinent ici).
Maintenant, je suis remise de l'événement Clic de souris sur le Tabcontrol, et je ne peux pas semblent être en mesure de comprendre comment obtenir l'onglet qui a été cliqué.
Je crois que le Clic de souris, l'événement n'est pas déclenché si je clique sur un autre endroit de la barre d'onglets, donc un onglet doit avoir été cliqué. Le problème est, qui a été l'onglet?
Toute aide serait appréciée. Merci!
OriginalL'auteur Jimmie Lin | 2010-02-12
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser leMouseClick
événement, car il y a un autre événement mieux adapté à cette fin:(Note: édité après l'OP a posté un commentaire.)
TabControl
a un propriétéSelectedIndex
. C'est la base zéro du numéro de l'onglet actuellement sélectionné. (Il existe également une autre propriété appeléeSelectedTab
, se référant directement à l'onglet sélectionné, la page de l'objet.)Vous pouvez associer un gestionnaire d'événement à l' événement
SelectedIndexChanged
afin d'être notifié à chaque fois que l'utilisateur sélectionne un autre onglet:(Prendre note que vous pourrait voulez en plus de protéger votre code contre les cas où
SelectedIndex
a une valeur non valide, par exemple-1
.)Modifier (ajout d'après le commentaire de l'OP):
Si
SelectedIndexChanged
ne pas travailler pour vous parce que vous avez besoin de prendre l'action de l'utilisateur pour tous les boutons de la souris, vous pouvez utiliser leGetTabRect
méthode deTabControl
comme ceci:C'est une autre question, mais voir mon élargi de réponse pour l'instant.
Cela fonctionne, merci!
Avez-vous jamais trouver comment accomplir le clic-milieu?
Je ne peux pas vérifier maintenant puisque je suis sur un portable sans bouton central de la souris; mais ne la vérification de
e.Button = MouseButtons.Middle
pas de travail?OriginalL'auteur stakx
La façon la plus simple que j'utilise pour gérer ce qui serait d'utiliser les événements ENTER et leave pour chaque élément tabpage de l'événement. Par Exemple, je l'ai si bien que lorsque je quitte la première page, il modifie la propriété visible de mon datagridview pour Faux et quand je rentre il tourne à la Véritable et charge les données de ma table.
Si vous voulez changer le texte sur le contrôle ou quelque chose comme ça, je suppose que la méthode de l'indice serait le choix du chemin à faire, mais juste pour savoir l'onglet qui a été cliqué c'est ce que ces deux événements sont pour.
OriginalL'auteur Thurman Jenner