70 votes

Vérifier si une page à onglet spécifique est sélectionnée (active)

Je crée un événement pour vérifier si une page d'onglet spécifique dans un contrôle d'onglet est active.

Le fait est que cela déclenchera un événement si cette page d'onglet dans un contrôle d'onglet est l'onglet actuellement sélectionné. Un code qui me donnera ce dont j'ai besoin ?

103voto

V4Vendetta Points 15354

En supposant que vous regardez dans Winform, il y a un SelectedIndexChanged pour l'onglet

Maintenant, vous pouvez vérifier votre onglet spécifique et poursuivre la logique

 private void tab1_SelectedIndexChanged(object sender, EventArgs e)
{
     if (tab1.SelectedTab == tab1.TabPages["tabname"])//your specific tabname
     {
         // your stuff
     }
}

9voto

ali Points 157

en .Net 4 peut utiliser

 if (tabControl1.Controls[5] == tabControl1.SelectedTab)
                MessageBox.Show("Tab 5 Is Selected");

OU

 if ( tabpage5 == tabControl1.SelectedTab)
         MessageBox.Show("Tab 5 Is Selected");

5voto

DaBlue Points 712

Pour une raison quelconque, ce qui précède ne fonctionnerait pas pour moi. C'est ce qui a fait :

 if (tabControl.SelectedTab.Name == "tabName" )
{
     .. do stuff
}

où tabControl.SelectedTab.Name est l'attribut de nom affecté à la page dans le tabcontrol lui-même.

3voto

fresher96 Points 68

Je pense qu'utiliser l'événement tabPage1.Enter est plus pratique.

 tabPage1.Enter += new System.EventHandler(tabPage1_Enter);

private void tabPage1_Enter(object sender, EventArgs e)
{
    MessageBox.Show("you entered tabPage1");
}

C'est mieux que d'avoir une instruction if-else imbriquée lorsque vous avez une logique différente pour différents onglets. Et plus approprié au cas où de nouveaux onglets pourraient être ajoutés à l'avenir.

Notez que cet événement se déclenche si le formulaire se charge et que tabPage1 est ouvert par défaut.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X