Navigation dans une tabcontrol

Soyez le premier à donner votre avis sur cette source.

Vue 17 768 fois - Téléchargée 1 070 fois

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

Ajouter un commentaire Commentaires
floptwo Messages postés 24 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 2 octobre 2006 7
8 juin 2006 à 03:26
Merci !!!!!!!!!! :-D
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
7 juin 2006 à 16:44
Simple et très bien commenté.
A ce niveau là, celui qui ne comprend pas la source peut arrêter tout de suite le C#. C'est tellement limpide que çà se passe de commentaires.
woot6768 Messages postés 393 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 23 mars 2007
6 juin 2006 à 14:57
A oui j'oubliais,
Bonne source, bien commenté, compréhensible...
Idéal pour les débutants en C# comme moi;)
Félicitations et merci

Woot
Alias Wouter Tjon.
floptwo Messages postés 24 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 2 octobre 2006 7
6 juin 2006 à 14:50
Salut !
Merci de la remarque woot6768.
J'ai corrigé touça.
woot6768 Messages postés 393 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 23 mars 2007
6 juin 2006 à 09:43
Est-tu sûr pour les indexes des tables :
Index de la cinquième : 6!
Sauf erreur de ma par, si la première porte l'index 0, la deuxième porte l'index 1,..... la cinquième porte donc l'index 4 non?

Woot
Alias Wouter Tjon

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.