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 :

Affichage colonne checkbox dans un datagridview


Sujet :

C#

  1. #1
    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 Affichage colonne checkbox dans un datagridview
    Bonjour

    J'utilise un DataGridView bindé dans lequel j'ai ajouté une colone checkbox
    En clicquant sur le header, je souhaite inverser les valeurs checked / unchecked

    Ca marche presque bien sauf que la premiere ligne n'affiche jamais le signe check, pourtant la valeur est bien "true"

    Voici la boucle que j'utilise.
    Ce qui est curieux c'est que c'est le row[0] qui veut pas reagir, si je demare la boucle a 1 j'ai visuellement exactement le meme resultat, sauf que dans ce cas rows[0] reste null


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
          for (int i = 0; i < dgv_viewTour.RowCount; i++)
          {
            if ((bool)dgv_viewTour.Rows[i].Cells[0].FormattedValue.Equals(false))
            {
              dgv_viewTour.Rows[i].Cells[0].Value = true;
            }
            else
            {
              dgv_viewTour.Rows[i].Cells[0].Value = false;
            }
          }
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    En fait c'est pas qu'elle est pas affectée c'est que c'est pas visible.

    Pour essai clic sur la ligne d'en dessous et tu verras que la valeur de la checkbox dans la ligne 0 changera.

    Du coup il faut juste avant le for désélectionner la cellule.

    dgv_viewTour.CurrentCell = null;
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  3. #3
    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 Bingo !
    Merci beaucoup !

    Tu me retire une solide épine du pied
    Mais c'est pas evident a deviner ce truc ....
    Tu sais de quelle logique ca vient !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  4. #4
    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 c'est épouvantable !
    C'est vraiment un sac de noeud ce truc !

    Je viens de constater que l'inverse est aussi vrai !

    L'utilisateur peut entrer dans son DGV et selectionner des lignes grace a la colonne check box

    Sur le mouseleave du DGV j'opere le traitement de ce qui a été sélectionné
    Et j'ai exactement le meme problème a l'inverse, la ligne qu'il vient de modifier n'est pas considérée !
    Excuse moi de te solliciter encore mais comme tu semble avoir une bonne expèrience du sujet,
    Que faut il faire dans ce cas ci ?

    Il faudrait un petit tutorial sur les checkbox column car je je pense que c'est tout sauf intuitif !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
         // **********************************************************************************************
     
        private void dgv_viewTour_MouseLeave(object sender, EventArgs e)
        {
          // boucle d'affichage
          DisplaySelectedTours();
        }
        // **********************************************************************************************
        private void DisplaySelectedTours()
        {
          pb_zoom.Refresh();
          for (int i = 0; i < dgv_viewTour.RowCount - 1; i++)
          {
            if (dgv_viewTour.Rows[i].Cells[0].FormattedValue.Equals(true))
            {
              DataGridViewRow dgvr = dgv_viewTour.Rows[i];
              int dag = (int)dgvr.Cells["dag"].Value;
              int chauff = (int)dgvr.Cells["chauffeurID"].Value;
              SelDispOneTour(dag, chauff);
            }
          }
        }
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

Discussions similaires

  1. [Débutant] Déclarer colonne checkbox dans un datagridview
    Par Romain0 dans le forum VB.NET
    Réponses: 4
    Dernier message: 14/02/2012, 15h08
  2. Réponses: 7
    Dernier message: 25/01/2012, 14h25
  3. Affichage du checkbox dans une colonne de jtable
    Par ulysse031 dans le forum Composants
    Réponses: 2
    Dernier message: 29/10/2010, 13h15
  4. Réponses: 0
    Dernier message: 22/10/2009, 10h55
  5. Réponses: 2
    Dernier message: 19/05/2006, 18h01

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