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

VB.NET Discussion :

colorer des cellules spécifiques dans un datagridview [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut colorer des cellules spécifiques dans un datagridview
    bonjour.

    dans la 3ème colonne d'une datagridview (nommée dgv), je veux colorier toutes les cellules qui contiennent la valeur "(non défini)".
    comment est ce que je procède?

  2. #2
    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 : 42
    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 754
    Points
    39 754
    Par défaut
    La question a été postée souvent dans le forum, fais une recherche sur "RowPrePaint" et tu devrais trouver la réponse

    EDIT: ah pardon, si c'est pour une cellule spécifique il faut plutôt que tu utilises l'évènement CellPainting, et non RowPrePaint. Mais le principe est le même... Il y a un exemple dans la doc

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    merci du lien mais je suis totalement égaré. si je peux avoir un bout de code pratique qui prenne en compte ma préoccupation, je serai vraiment ravi.

    dans la 3ème colonne d'une datagridview (nommée dgv), je veux colorier toutes les cellules qui contiennent la valeur "(non défini)".
    comment est ce que je procède?

  4. #4
    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 : 42
    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 754
    Points
    39 754
    Par défaut
    Déjà il vaut mieux se baser sur le nom de la colonne plutôt que sur sa position, comme ça si tu modifies un jour l'ordre des colonnes tu n'auras pas besoin de modifier le code. Voilà un exemple qui met en gris clair les cellules avec la valeur "(non défini)" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub dgv_CellPainting(ByVal sender As Object, ByVal e As DataGridViewCellPaintingEventArgs) Handles dgv.CellPainting
     
        If dgv.Columns(e.ColumnIndex).Name = "LeNomDeLaColonneQueTuVeux" Then
            If e.Value = "(non défini)" Then
                e.CellStyle.BackColor = Color.LightGray
            End If
        End If
     
    End Sub

  5. #5
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    meric tomlev. le pb est resolu. il a buggué au démarrage. j'ai juste ajouté
    et tout va bien.
    en core merci

  6. #6
    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 : 42
    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 754
    Points
    39 754
    Par défaut
    Citation Envoyé par melancolie Voir le message
    meric tomlev. le pb est resolu. il a buggué au démarrage. j'ai juste ajouté
    et tout va bien.
    en core merci
    argh... pitié, n'utilise pas cette instruction !
    On Error Resume Next, ça veut dire en gros que tu ignores les erreurs, tu fais comme si tout allait bien... C'est une source infinie de bugs ! Une instruction plante, on passe à la suivante, qui va probablement planter aussi à cause de l'erreur précédente, et ainsi de suite

    S'il y a une erreur, c'est que quelque chose ne va pas, il faut résoudre le problème au lieu de l'ignorer.

    Montre ton code exact, le message de l'exception, et indique sur quelle ligne ça plante

  7. #7
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    en réalité, mon datagridview est vide car il n'est pas lié à une datasource. c'est à l'aide d'un bouton "actualiser" que je le remplis et lance la procédure "cellpainting". evidemment, il ramène l'erreur suivante
    l'index était hors limites. il ne doit pas être négatif et doit être inférieur à la taille de la collection. nom du paramètre: index
    on remarque que l'argument
    e.ColumnIndex
    prend la valeur "-1".

  8. #8
    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 : 42
    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 754
    Points
    39 754
    Par défaut
    Dans ce cas il suffit de vérifier que la valeur de l'index est correcte. Si ce n'est pas le cas, tu ne fais rien...

  9. #9
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    à la place
    on error resume next
    , j'ai mis
    if e.ColumnIndex<0 then exit sub

  10. #10
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    merci tomlev et au plaisir de te relire.

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

Discussions similaires

  1. [Débutant] colorer des cellules spécifiques Datagridview
    Par anissa2 dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/11/2012, 21h38
  2. Colorer des lignes spécifiques du datagridview
    Par abbd dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/06/2008, 15h08
  3. Colorer des cellules dans une TGrid
    Par a_lincoln54 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/04/2008, 11h19
  4. Réponses: 22
    Dernier message: 09/09/2006, 03h34
  5. remplir des cellules fixes dans une colone
    Par tahri_1989 dans le forum Bases de données
    Réponses: 1
    Dernier message: 11/01/2006, 16h06

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