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 :

Affichage d'une ListView


Sujet :

Windows Forms

  1. #21
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    Salut,

    Merci de ta réponse.

    J'ai consulté la doc de msdn mais ça ne m'aide absolument pas, il n'y a aucun exemple d'utilisation concrète... ça décrit juste ce qu'est la classe mais pas comment s'en servir !

    Je ne comprends pas, si je remplace la ligne dont je parlais par :
    if(this.dataGridViewAliments.Rows[i].Cells[10])
    cela me dit "Cannot convert type 'System.Windows.Forms.DataGridViewCell' to 'bool'" et pourtant, je suis sûre que la valeur de cette cellule est forcément un boolean puisque ça correspond à une cellule de checkbox et comme tu disais, la valeur d'une telle cellule est true ou false... :S
    Me voilà encore coincée...

  2. #22
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Tu n'as pas dû bien chercher dans la doc...
    http://msdn.microsoft.com/fr-fr/libr...ckboxcell.aspx
    Citation Envoyé par MSDN
    En mode binaire par défaut, les cellules peuvent contenir des valeurs true ou false. En mode ternaire, les cellules prennent l'une des valeurs CheckState. La propriété ThreeState détermine si le mode binaire ou ternaire est activé.
    Pour ton problème, il faut utiliser la valeur de la cellule (propriété Value) et non la cellule elle même, et il faut la convertir en bool (car la propriété Value est de type object) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if((bool)(this.dataGridViewAliments.Rows[i].Cells[10].Value))

  3. #23
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    Salut,

    Merci de ta réponse ! En effet il me manquait le ".Value" pour que ça fonctionne.
    Maintenant ça va bien si la cellule est cochée (value true) mais par contre, si la cellule n'est pas cochée, la value est "null" alors ça plante ! Pourquoi la value n'est pas false ?? Je ne comprends pas.
    J'ai essayé de mettre le ThreeState = false afin d'être en binary... mais ça ne change rien... ça plante toujours, à cause de la value "null" lorsqu'on arrive à une case non cochée.
    Quelle est la propriété pour que ce soit binaire "true" si cochée et "false" si non cochée... d'après msdn je croyais qu'il fallait faire ThreeState = false mais cela ne change rien.

    merci encore,

    Marie

  4. #24
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    Bon, je m'en suis sortie finallement, en faisant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (this.dataGridViewAliments.Rows[i].Cells[10].Value == null)
    {
    }
    else if((bool)this.dataGridViewAliments.Rows[i].Cells[10].Value)
    {
               alimentsAjouter.AlimentsList.Add(aliments.AlimentsList[i]);
    }

  5. #25
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Pas très propre le if vide... j'aurais plutôt fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (this.dataGridViewAliments.Rows[i].Cells[10].Value != null
        && (bool)this.dataGridViewAliments.Rows[i].Cells[10].Value)
    Si la première partie de la condition est fausse (i.e. si value est null) la 2e partie ne sera pas évaluée, donc pas de risque de plantage

  6. #26
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    OK !!!

    Oui tu as raison, c'est plus propre comme cela !
    Je vais changer cela.

    Mais alors, au fait, c'est donc normal la value = null au lieu de false quand le checkbox n'est pas coché ?

  7. #27
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    ah ah ! J'ai trouvé ! C'est "null" quand la case n'a pas été cochée ni décochée, c'est "true" quand la case est cochée et c'est "false" quand la case a été cochée puis décochée.

  8. #28
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    Bon je vais fermer ce post même si le projet n'est pas fini, car le titre du post ne correspond même plus aux questions que je pose !
    Alors merci de m'avoir aidé et RDV dans un autre post pour d'autres questions !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [XL-2007] affichage dans une listview
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/11/2011, 06h39
  2. Problème d'affichage dans une ListView
    Par tabbabi dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 10/08/2011, 12h58
  3. Force close après l'affichage d'une ListView
    Par Cuillere dans le forum Composants graphiques
    Réponses: 7
    Dernier message: 27/08/2010, 14h28
  4. Affichage d'une listView
    Par sicilianadev dans le forum C#
    Réponses: 0
    Dernier message: 24/05/2009, 14h47
  5. Réponses: 8
    Dernier message: 12/05/2006, 14h04

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