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 :

[C# 2.0] Séléction de lignes dans un datagridview


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Points : 108
    Points
    108
    Par défaut [C# 2.0] Séléction de lignes dans un datagridview
    Bonjour,
    j'au un problème avec le datagridview. Il semble que le comportement du controle soit assez bizarre lors de la séléction.
    En effet lorsqu'on a plein de lignes et que l'on rend invisible certaines lignes (par une sorte de filtre qui va analyser chaque datagridviewrow et les setter à visible=false si besoin est) , lors de la séléction, le fait d'utiliser la touche shift/maj afin de séléctionner plusieurs ligne, induit une séléction des lignes invisibles qui se trouveraint normalement dans la séléction.


    Donc le fait de rendre invisibles des lignes ne les rend pas pour autant non séléctionnable. Quelqu'un a-t-il réussi à contourner ce comportement pour le moins discutable et très dangereux?

    La solution que j'ai pour l'instant c'est de vider la datagridview et de le recharger comme je veux plutot que d'utiliser la propriété visible mais au point de vue performances c'est vraiment pas ça...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Points : 108
    Points
    108
    Par défaut
    Bon j'ai confirmation que le datagridview séléctionne bien les lignes invisibles lors de séléction multiples (je trouve ça aberrant). Donc la feinte à appliquer est la suivante: il faut désélectionner les cellules invisibles lors de l'évenement "selection". Comme ça la séléction retournée contient uniquement les lignes visibles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private void dataGridViewTests_SelectionChanged(object sender, EventArgs e)
            {
                //Permet d'eviter la séléction des éléments invisibles
                foreach (DataGridViewRow dgvr in dataGridViewTests.SelectedRows)
                {
                    dgvr.Selected = dgvr.Visible;
     
                }
            }

  3. #3
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    C'est vrai que c'est un comportement qui porte à confusion. Je penses que le fond du PB et que Invisible ne veut pas dire Inactive. Mais c'est assez déroutnt en effet

    En tout cas merci pour ta solution

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

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 18h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 17h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 23h43

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