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

C# Discussion :

Problèmes Evenement dans un DataGridView


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 111
    Points : 65
    Points
    65
    Par défaut Problèmes Evenement dans un DataGridView
    Bonjour,
    j'ai réalisé une petite fonction qui fait que lorsque je clique sur une cellule d'un DataGridView, j'ai une liste qui se rempli par des informations,
    pour cela j'ai testé les événement : cellClick, cellMouseClick, et RowEnter, et malgrès ca mon problème perciste.
    Le problème : Le rafraichissement ne s'effectue pas dans certain cas, et c'est au hasard, lors de mes tests, je selectionne mes cellules tout se passe bien, mais parfois il y a une cellule ou ca ne passe pas j'ai toujours les anciennes données il faut que je receletionne encore une autre fois pr que ca marche.
    c'est un blem de rafraichissement je crois.
    quelqu'un aurait il une idée sur ce que je dois faire?

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Et avec l'event CellEnter ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 111
    Points : 65
    Points
    65
    Par défaut
    Toujours le meme problème !!
    Je ne comprends vraiment pas pourquoi !!!!!

  4. #4
    Membre confirmé Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Points : 569
    Points
    569
    Par défaut
    Bonjour,

    est ce qu'on peux voir un bout de code que tu fais ?

    sinon essaye de travailler avec l'event 'CellContentClick', et au sein de la méthode t'aura l'attribut e.ColumnIndex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(e.ColumnIndex == LindexDuColonneSouhaitee)
    { // traitement
    .....
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Redouane me = new Redouane();
    if (me.Connect())
        me.ShareInformations();

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 111
    Points : 65
    Points
    65
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private void dgrCatalogue_ColumnHeaderMouseClick(object sender, DataGridViewCellEventArgs e)
            {
                this.dgrCatalogue.Columns[e.ColumnIndex].Selected = true;
                string nchamps = (string)this.dgrCatalogue.Rows[e.RowIndex].Cells[0].Value;
                Utiles.fillComposantList("MaRequette", "nomTab", "Indice", this.listRevisC);
            }
    la méthode fillComposantList rempli une liste par les données qu'elle récupère via un cell, j'ai fait un débogague pas a pas, et j'ai remarqué que la valeur du champs changer réellement, c'est le rafraichissement de ma list qui ne s'effectue pas, j'ai mi la méthode refresh mais ca donne rien.
    Comment faire pour rafraichir ma List ?

  6. #6
    Membre confirmé Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Points : 569
    Points
    569
    Par défaut
    pourquoi t'a mets l'event ColumnHeaderMouseClick ?! normalement tu veux cliquer sur une cellule, mais pas juste le Header de la cellule, en fait ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string nchamps = (string)this.dgrCatalogue.Rows[e.RowIndex].Cells[0].Value;
    va générer un erreur, puisque dans ce cas et dans l'event ColumnHeaderMouseClick, le e.RowIndex est égal à -1.

    autre chose, normalement la liste doit se rafraichir sans même appeler refresh() je crois.

    donc, peut tu nous donner exactement, tu veux faire koi en détail, et mieux si tu nous décris la méthode fillComposantList, juste pour faciliter aux gens ici de t'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Redouane me = new Redouane();
    if (me.Connect())
        me.ShareInformations();

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 111
    Points : 65
    Points
    65
    Par défaut
    nom ca ne génère pas d'erreur, ca marche, et je l'avais mis pour tester, et comme j'ai dit le code marche 5fois mais ne marche pas 1e fois donc je ne pense pas que ca soit autre chose que le rafraichissement de mémoire.
    Pour la fonction c une boucle qui ajoute a la liste des données récupérés d'une requete sql c tt

  8. #8
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Mais Redouane a tout a fait raison le code que tu donne ne peux pas fonctionner correctement

    Donc si tu veux de l'aide utile, autant donner le code que tu voudrais employer et non pas un des brico que tu a essayé et qui doit certainement planter

    Et peut etre décrire un peu mieux ce que tu veux faire...

    De toute façon le CellClick te rendra toujours un ColumnIndex et un RowIndex

    Cela suffit largement pour recuperer les information de la cellulle ou du row qui t'intéresse

    Apres c'est dans la logique de ton code qu'il faut essayer de trouver le problème.
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 111
    Points : 65
    Points
    65
    Par défaut
    Le code que je vous ai mi c'est le vrai code, ce n'est pas du bricole, je l'ai copier coller de mon application.
    Et effectivement d'après ce qu'on m'a dit parfois les dépendenses avec les evenement ne sont pas Mis à jour, car il risque d'y avoir des problèmes de rafraichissement.
    La solution qui marche et que j'ai testé sans aucun bug c'est de passer par un BindingSource car il gère très bien les dépendences !!!

    merci comme meme pour votre aide

  10. #10
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Et pourtant ....

    Ce code va planter a la premiere occasion comme te l'a dis redouane
    Et c'est pas un bindingsource qui va accepter un rowindex == -1
    Donc avant de penser qu'un bindingsource va faire de la magie ce serait quand meme bien de comprendre ce que tu veux faire et d'en revoir la logique fonctionelle
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  11. #11
    Membre confirmé Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Points : 569
    Points
    569
    Par défaut
    En fait, pour bien t'expliquer la situation et ce que olibara veux te dire, c'est que l'événement 'ColumnHeaderMouseClick' ça se produit lorsque tu clique sur l'en-tête d'une colonne.
    hors l'en-tête d'une colonne du DataGridView a comme index de la ligne :
    e.RowIndex = -1.
    c'est pourquoi normalement il doit générer erreur, et peut être que dans ton cas, tu n'utilise pas ColumnHeaderMouseClick, ou bien tu ne clique pas sur l'en-tete, le fait de ne pas voir l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Redouane me = new Redouane();
    if (me.Connect())
        me.ShareInformations();

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/07/2009, 10h38
  2. probléme d'affichage des données dans le datagridview
    Par asprog dans le forum Windows Forms
    Réponses: 0
    Dernier message: 13/05/2009, 22h23
  3. problème dans le DataGridView
    Par asprog dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/05/2009, 17h30
  4. Problème d'affichage dans un datagridview sous MySQL en c#
    Par Redg9 dans le forum Windows Forms
    Réponses: 15
    Dernier message: 21/01/2009, 17h40
  5. Réponses: 1
    Dernier message: 02/09/2008, 02h11

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