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?
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?
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
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?
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
meric tomlev. le pb est resolu. il a buggué au démarrage. j'ai juste ajouté
et tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part on error resume next
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
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 suivanteon remarque que l'argumentl'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: indexprend la valeur "-1".e.ColumnIndex
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...
à la place, j'ai mison error resume nextif e.ColumnIndex<0 then exit sub
merci tomlev et au plaisir de te relire.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager