Navigation dans une tabcontrol

Description

Voici un petit script sur les TabControl.
Il permet de passer d'une TabPage a une autre peut importe le nombre de page.
La navigation se fait grace au Index.

Source / Exemple :


using System;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        ////////////////////////
        // TabControl - floptwo :
        //
        // Voici un petit script sur les TabControl.
        // Il permet de passer d'une TabPage a une 
        // autre peut importe le nombre de page.
        // La navigation se fait grace au Index.
        //
        // par floptwo.
        ////////////////////////
        //
        // tabControl1.SelectedIndex : 
        //   numero d'index de la tab de tabControl1
        //   selectionnée.
        //
        // tabControl1.TabCount : 
        //   Le nombre de Tab de la tab tabControl1.
        //
        // button_premier.Enabled :
        //   'button_premier' est le nom d'un des boutons
        //   'Enabled' permet d'activer ou pas le bouton  
        //   'button_premier'.
        //   Si button_premier.Enabled = true le bouton 
        //   'button_premier' sera activé.
        //   Si button_premier.Enabled = false le bouton 
        //   sera désactivé.
        //
        // button_premier_Click (object sender, EventArgs e) :
        //   Permet de définir les actions à effectuer lors
        //   d'un click  sur le bouton premier
        //
        // tabControl1_Selected (object sender, TabControlEventArgs e) :
        //   Permet de définir les actions à effectuer lorsqu'une
        //   tab est selectionnée.
        //
        ////////////////////////
        //
        // Pour ceux qui se poseraient la question, j'active ou
        // désactive les boutons de navigation au changement de
        // tab selectionnée. 
        // Il serait tout à fait possible de le faire à chaque 
        // click en fonction de le l'index de la tab qui sera
        // selectionnée, soit, après les tabControl1.SelectedIndex = ...
        //
        ////////////////////////
        //
        // '0' est le numero d'index de la 1ere tab
        // donc s'il y a 5 tab, l'index de la 5eme
        // ser '4'.
        //
        ////////////////////////

        private void button_premier_Click(object sender, EventArgs e)
        {
            // En cliquant sur 'button_premier'
            // la 1ere tab sera selectionner
            tabControl1.SelectedIndex = 0;
        }

        private void button_precedent_Click(object sender, EventArgs e)
        {
            // Si la tab selectionnée n'est pas la premiere
            if (tabControl1.SelectedIndex > 0) 
            {
                // La tab selectionnée sera celle dont l'index sera son index - 1
                // si son index est 4 la tab a selectionner sera 3 : 4 - 1
                tabControl1.SelectedIndex = tabControl1.SelectedIndex - 1;
            }
        }

        private void button_suivant_Click(object sender, EventArgs e)
        {
            // Il ne peut il y avoir une tab suivante que si son l'index
            // de la tab selectionnée est inferieur au nombre de tab.
            // S'il y a 5 tab l'index de la 5eme est 4, donc si la 5eme tab
            // qui a pour index 4 est selectionée, la prochaine tab (la 5eme)
            // aura pour index sera 5 (= 4 + 1)
            // or 5 n'est pas inferieur au (ou different du) nombre de tab
            // c'est a dire 5, il n'y aura donc pas de tab suivante!
            if (tabControl1.SelectedIndex < tabControl1.TabCount)
            {
                // La tab à selectionner est la prochaine
                // On ajoute donc 1 a l'index de la tab selectionnée
                // 3eme tab selectionnée la prochaine est la 4eme : 
                // 4 = 3 + 1.
                tabControl1.SelectedIndex = tabControl1.SelectedIndex + 1;
            }
        }

        private void button_dernier_Click(object sender, EventArgs e)
        {
            // S'il y a 5 tab l'index de la 5eme est 4,
            // donc on retir 1 au nombre de tab et on obtient
            // l'index de la derniere table.
            tabControl1.SelectedIndex = tabControl1.TabCount - 1;
        }

        // A chaque changement de tab...
        private void tabControl1_Selected(object sender, TabControlEventArgs e)
        {
            // Si la premiere tab est selectionnée...
            if (tabControl1.SelectedIndex == 0)
            {
                // On désactive les boutons premier et précédent
                button_premier.Enabled = false;
                button_precedent.Enabled = false;
                button_suivant.Enabled = true;
                button_dernier.Enabled = true;
            }
            // Si c'est la dernière tab qui est selectionnée...
            else if (tabControl1.SelectedIndex == tabControl1.TabCount - 1)
            {
                // On désactive les boutons suivant et dernier
                button_premier.Enabled = true;
                button_precedent.Enabled = true;
                button_suivant.Enabled = false;
                button_dernier.Enabled = false;
            }
            // Si ni la permière ni la dernière qui est selectionnée...
            else
            {
                // On active tous les boutons
                button_premier.Enabled = true;
                button_precedent.Enabled = true;
                button_suivant.Enabled = true;
                button_dernier.Enabled = true;
            }
        }

        ////////////////////////
        // par floptwo.
        ////////////////////////

    }
}

Conclusion :


Dans le ZIP vous trouverez tout les code.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.