saadouli7
Messages postés36Date d'inscriptionmardi 26 avril 2011StatutMembreDernière intervention18 novembre 2011
-
18 nov. 2011 à 08:43
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
18 nov. 2011 à 10:54
bonjour
j'ai un problème concernant le coloriage des cellules vides d'un datagridview.
je veus parcourir tous les cellules du datatgridview et à chaque fois où je trouve une cellules vide je lui affecte une coleure détérminé.
j'ai écrit le code suivant:
dim x as integer
dim y as integer
for x=0 to DataGridView.ColumnCount
For y = 0 To DataGridView.RowCount
Dim vv As Object = DataGridView.Item(x, y).Value
If vv Is DBNull.Value Then
DataGridView.Item(x, y).Style.BackColor = Color.Red
End If
Next
next
le problème de ce code c'est qui fait colorier seulement les cellules vides du premier colonne les autres cellules restent telle quelles sont.
donc la valeur de x ne s'incremente pas au cours de l'execution.
je sais où est le problème
est ce que quelqu'un a une idée?
merci d'avance
cordialement
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 18 nov. 2011 à 09:07
Bonjour,
DBNull correspond à une valeur inexistante, ce qui n'est pas pareil qu'une chaîne vide.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 18 nov. 2011 à 10:06
Salut
D'abord sers toi du debugger
(outil indispensable pour le programmeur
mets un point d'arret à la ligne
for x=0 to DataGridView.ColumnCount
lances le prog et à l'arret
avec le watch verifie les valeur x y
vv
verifie aussi le If vv Is DBNull.Value
avec le watch tout en continuant pas à pas F8
saadouli7
Messages postés36Date d'inscriptionmardi 26 avril 2011StatutMembreDernière intervention18 novembre 2011 18 nov. 2011 à 09:59
bonjour
merci pour la réponce
j'ai pas mentionné que j'ai utulisé la condition suivante avant d'essayer avec dbNull
j'ai ecris:
if dataGridView.Item(x, y).Value=""
mais j'ai toujour une message d'erreur
je sais pas comment détécté une cellule vide . est ce que vous avez une idée
merci
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 18 nov. 2011 à 10:51
Re,
Tu as probablement à la fois des cellules contenant DbNull ert des cellules contenant une chaîne vide (EmptyString)
Il te faut donc agir dans un cas ET dans l'autre
Essaye donc :
If vv Is DBNull.Value Then
DataGridView.Item(x, y).Style.BackColor = Color.Red
else if len(vv) = 0 then
DataGridView.Item(x, y).Style.BackColor = Color.Red
End If
Je n'y connais rien en VB.Net, mais je crois qu''il t'offre en plus (à voir) IsNullOrEmpty.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 18 nov. 2011 à 10:54
Cette ligne m'inquiète, par contre :
Dim vv As Object = DataGridView.Item(x, y).Value
Ta datagridview contient des objets ? T'es sûr ?
C'est à mon avis là l'erreur principale
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient