colorier des cellules vides en vb.net [Résolu]

saadouli7 36 Messages postés mardi 26 avril 2011Date d'inscription 18 novembre 2011 Dernière intervention - 18 nov. 2011 à 08:43 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 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
Afficher la suite 

5 réponses

Répondre au sujet
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 18 nov. 2011 à 09:07
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 18 nov. 2011 à 10:06
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_ShayW
saadouli7 36 Messages postés mardi 26 avril 2011Date d'inscription 18 novembre 2011 Dernière intervention - 18 nov. 2011 à 09:59
0
Utile
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
Commenter la réponse de saadouli7
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 18 nov. 2011 à 10:51
0
Utile
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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 18 nov. 2011 à 10:54
0
Utile
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
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.