Navigation dans une tabcontrol

Soyez le premier à donner votre avis sur cette source.

Vue 17 199 fois - Téléchargée 1 039 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

Messages postés
24
Date d'inscription
jeudi 1 juin 2006
Statut
Membre
Dernière intervention
2 octobre 2006
5
Merci !!!!!!!!!! :-D
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
21
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.
Messages postés
393
Date d'inscription
mercredi 8 mars 2006
Statut
Membre
Dernière intervention
23 mars 2007

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.
Messages postés
24
Date d'inscription
jeudi 1 juin 2006
Statut
Membre
Dernière intervention
2 octobre 2006
5
Salut !
Merci de la remarque woot6768.
J'ai corrigé touça.
Messages postés
393
Date d'inscription
mercredi 8 mars 2006
Statut
Membre
Dernière intervention
23 mars 2007

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.