colorier des cellules vides en vb.net

Résolu
saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 novembre 2011 - 18 nov. 2011 à 08:43
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 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

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
3
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
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

tu sauras au ce qui se passe
3
saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
Rejoignez-nous