Changer une propriété de SubItem dans les ListViewItem
gbtheone
Messages postés4Date d'inscriptionlundi 14 janvier 2008StatutMembreDernière intervention 8 avril 2008
-
14 janv. 2008 à 18:01
gbtheone
Messages postés4Date d'inscriptionlundi 14 janvier 2008StatutMembreDernière intervention 8 avril 2008
-
15 janv. 2008 à 16:51
Bonjour,
résumé : Je ne parviens pas à modifier le backcolor d'une SubItem dans mon ListViewItem
contexte : je récupère une liste de scripts qui tournent quotidiennement ou non. Chaque ligne de mon ListViewItem correspond à un script et chaque ligne à une propriété. Je m'intéresse plus précisément au subItem 4 à 11 qui définissent si le script tourne pour chaque jour de la semaine. S'il ne tourne pas un certain jour, je veux que la propriété backColor du SubItem correspondand devienne coloré (disons .. Cyan).
Voici mon code:
For i = 0 To strScriptList.Count - 1 'liste des scripts
dbScriptprop = Split(strScriptList(i), ";") 'split des propriétés du script
'Pour chaque Script :
'Créer un nouvel élément pour le ctrl ListView
Dim LVI As New ListViewItem
'Définir le texte affiché par l'élément
LVI.Text = dbScriptprop(0)
For j = 1 To dbScriptprop.Length - 1
'Ajouter les sous-éléments pour afficher le
LVI.SubItems.Add(dbScriptprop(j))
Next
For j = 4 To 11
' Ajout d'un fond cyan pour les jours de non fonctionnement
If dbScriptprop(j) = "N" Then
LVI.SubItems(j).BackColor = Color.Cyan ' AUCUN EFFET
LVI.SubItems(j).Text = "W" ' Le texte du SubItem change bien
End If
Next
lvScript.Items.Add(LVI)
Next
J'ai aussi essayé avec:
LVI.SubItems(j).BackColor.Cyan() => reconnu comme erreur (souligné en bleu)
Merci de votre aide
PS : y'a un truc pour afficher le code de façon spécifique ?
Pour activer la possibilité de changer les propriétés des subItems, il faut mettre la propriété UseItemStyleForSubItems du ListView à la valeur false (avant de demander les modifs). Voici donc mon code corrigé:
' *********************************
' * CODE POUR REMPLIR LE LISTVIEW *
' *********************************
For i = 0 To strScriptList.Count - 1
dbScriptprop = Split(strScriptList(i), ";")
'Pour chaque Script :
'Créer un nouvel élément pour le ctrl ListView
Dim LVI As New ListViewItem
LVI.UseItemStyleForSubItems = False
'Définir le texte affiché par l'élément
LVI.Text = dbScriptprop(0)
For j = 1 To dbScriptprop.Length - 1
'Ajouter les sous-éléments pour afficher le
LVI.SubItems.Add(dbScriptprop(j))
Next
For j = 4 To 11
' Ajout d'un fond cyan pour les jours de non fonctionnement
If dbScriptprop(j) = "N" Then
LVI.SubItems(j).BackColor = Color.Cyan
End If
Next
lvScript.Items.Add(LVI)
Next