IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

ColumnDisplayIndexChanged event infini


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 46
    Points : 50
    Points
    50
    Par défaut ColumnDisplayIndexChanged event infini
    Salut à toutes et à tous

    Voila j'ai un datagridview(DGV) qui affiche une liste d'étudiant qui est mise à jour dans la BDD quand l'utilisateur fait des modifications, ajouts et suppression dans le DGV.
    Dans cette liste il y a une ligne que je ne veux ni modifier ni supprimer.

    Pour la suppression j'ai réussi à trouver une solution afin que l'utilisateur ne puisse jamais la supprimer.

    En revanche pour bloquer la modification de la ligne j'ai réussi à moitié. En faite après le chargement de mon DGV (grâce à un DataSet) je parcours le DGV et repère la ligne à ne pas modifier (au chargement elle est toujours en dernière position) et je la met en ReadOnly.

    Mais le problème c'est que si l'utilisateur clique sur une entête de colonne pour trier la liste (en fonction des noms par exemple). Et bien le ReadOnly est perdu car cette dernière change de position et donc l’utilisateur peut la modifier ce que je ne veux absolument pas.

    J'ai cherché et j'ai trouver qu'il existe un event ColumnDisplayIndexChanged qui se déclenche lorsque l'utilisateur tri un colonne. Donc à ce moment la je met ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void dgv_inf_etu_ColumnDisplayIndexChanged(object sender, DataGridViewColumnEventArgs e)
            {
                if (dgv_inf_etu.Rows.Count != 0)
                {
                    int i;
                    for (i = 1; i <= dgv_inf_etu.Rows.Count; i++)
                    {
                        if (dgv_inf_etu.Rows[i].Cells[0].Value.ToString() == "NULL")
                        {
                            dgv_inf_etu.Rows[i].ReadOnly = true;
                        }
                    }
                }
            }


    Mais le problème est que lorsque je charge pour la première fois mon DGV cette event s’exécute en boucle et ne s'arrête jamais. Est ce que c'est normal ou c'est moi qui n'est pas compris ce que l'event ColumnDisplayIndexChanged fait.

    Quelqu'un pourrait-il m'expliquer exactement pourquoi l'event s'execute en boucle au premier chargement de mon DGV? Et si il existe un autre moyen?

    Merci par avance amicalement.

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 46
    Points : 50
    Points
    50
    Par défaut
    Complètement débile que je suis l’évent à déclencher quand on fait un tri dans un datagridview est l’évent Sorted et non pas ColumnDisplayIndexChanged

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Events, éviter les boucles infinies
    Par levalp dans le forum Windows Forms
    Réponses: 50
    Dernier message: 02/12/2007, 14h12
  2. [C#] Comment eviter les boucles infinies ?
    Par Thomas Lebrun dans le forum C#
    Réponses: 12
    Dernier message: 09/06/2004, 00h04
  3. Réponses: 4
    Dernier message: 21/05/2004, 09h13
  4. Accès à une case d'un DBGrid dans l'event OnKeyDown
    Par fba dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/03/2004, 12h48
  5. [LG]tableau infini et fonction longueur
    Par dsr57 dans le forum Langage
    Réponses: 8
    Dernier message: 13/12/2003, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo