Changer une propriété de SubItem dans les ListViewItem

Signaler
Messages postés
4
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
8 avril 2008
-
Messages postés
4
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
8 avril 2008
-
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 ?

Un bon script est un script commenté !

1 réponse

Messages postés
4
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
8 avril 2008

J'ai finalement trouvé à l'URL suivante :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.listviewitem.listviewsubitem(VS.80).aspx

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

Un bon script est un script commenté !