9
votes

Comment puis-je savoir quel onglet je suis avec le bouton droit de clic sur Winforms Tabcontrol?

Je fais une bande de menu contextuelle apparaît pendant le clic droit sur une onglet sélectionné ou non sélectionné dans la bande de tabulation d'un onglet WinForms Tabcontrol. Cela va avoir de près et fermer tout sauf cela pour le moment. Quoi qu'il en soit, je dois être capable de capturer l'onglet que la souris est terminée lorsque le clic droit est enfoncé. Quelqu'un sache comment?

Une autre solution que j'accepterais est celle qui sélectionne l'onglet non sélectionné avec un clic droit avant le menu contextuel.


0 commentaires

3 Réponses :


16
votes

Dans votre événement de clic de souris, vous pouvez ajouter ce code pour le trouver, si onglets est votre tabcontrol xxx


2 commentaires

Cela semble être ce que je veux, je vais uppoter / accepter quand je le traverse!


@Isaacb: NP, GL avec le reste :)



0
votes

Le paramètre code> Sender code> du gestionnaire d'événements vous donne généralement l'objet que vous avez cliqué sur.

void whatever_OnClick(object sender, EventArgs e) {
  var tab = sender as TabControlClassHere;
}


1 commentaires

Cela me dit le tabcontrol que j'ai cliqué sur, ce qui n'aide pas. Il n'y a qu'un seul tabcontrol! Merci quand même pour la suggestion!



4
votes

Cela pourrait aider, il capture la position de votre clic droit avec la souris et s'il est sur le rectangle de n'importe quel onglet, cet onglet sera sélectionné et obtenez le menu de droite à afficher

private void tabControl1_MouseClick(object sender, MouseEventArgs e)
{
      if (e.Button == MouseButtons.Right)
    {
            for (int i = 0; i < tabs.TabCount; ++i)

                {

                if (tabs.GetTabRect(i).Contains(e.Location)) 
                     {

                tabControl1.SelectTab(i);

                this.contextMenuStrip1.Show(this.tabControl1, e.Location);

                     }

                }
    }
}


0 commentaires