Couleur de fond d'une case d'un ListView

Résolu
Signaler
Messages postés
14833
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
-
Messages postés
14833
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
-
Bonjour

J'ai un petit problème, j'essaye de colorier une colonne dans un ListView (en mode Detail).

Pour l'instant j'utilise ce code :
With LVGeneralLstTransAct
    For j As Integer = 0 To .Items.Count - 1
        .Items(j).BackColor = Nothing
        .Items(j).SubItems(i).BackColor = IIF(lMcpt.PropCom.Alive, _
          SystemColors.Window, Color.Red)
    Next
End With, ----
(Coloration syntaxique automatique par Kenji)
 La variable i indique la colonne à colorier.

Mon problème est que, apparamment, la couleur de fond de la ligne est utilisée et pas celle que j'ai définit.

Auriez-vous un conseil ?

Merci d'avance.

Nous captons le cockpit coupable qui a capoté
VB (6, .NET1&2), C++, C#.Net1

6 réponses

Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
4
Salut,

   je ne sais pas comment tu remplis ta listview, mais il faut mettre UseItemStyleForSubItems à False

Soit une listview (LVGeneralLstTransAct) avec deux colonnes

'Je défini un objet ListViewItem
'Je luis ajoute une ligne avec 1 élément dans chaque colonne

Dim list
As
New ListViewItem(
"test")
list.SubItems.Add(
"test1")
'Ici je dis que le style des subitems sera différent pour chaque subitems
list.UseItemStyleForSubItems =
False
'J'ajoute mon objet listviewitem
LVGeneralLstTransAct.Items.Add(list)

'Ton code

'J'ai remplacé i par 1 et ton iff par Color.red
With LVGeneralLstTransAct

   For j
As
Integer = 0
To .Items.Count - 1
         .Items(j).BackColor =
Nothing
         .Items(j).SubItems(1).BackColor = Color.Red

   Next
End
WithAvec cela tu devrais arriver à tes fin

@+
LIM
Messages postés
14833
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
157
Bonjour

Merci pour ta réponse, ça fonctionne nickel.

J'ai juste mis UseItemStyleForSubItems
à False, et tout fonctionne correctement.

Nous captons le cockpit coupable qui a capoté
VB (6, .NET1&2), C++, C#.Net1
Messages postés
11
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
15 janvier 2009

Bonjour,

je voudrais aussi remplir une case de mon listview avec une couleur de fond mais je ni arrive pas... voici mon code :

'_________________________________________
' Ajout d'une ligne
ListView.ListItems.Add = ""

' Remplir colonne
ListViewl.ListItems(nb).Text = TextBoxvaleur
ListView.ListItems(nb).ListSubItems.Add = colortexte
ListView.ListItems(nb).ListSubItems.Add = colorfond

'changer la couleur du texte
ListView.ListItems(nb).ListSubItems(2).ForeColor = 12632256

'changer la couleur de fond (ne marche pas)
ListView.ListItems(nb).ListSubItems(2).backcolor = 12612199

'___________________________________________

est ce que quelqu'un a une idée a me proposer

merci
Messages postés
14833
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
157
Bonjour

Tu es en .NET ?

Si oui, comment tu fais pouir ne pas avoir d'erreur sur ces lignes  : ?
ListView.ListItems(nb).ListSubItems(2).ForeColor = 12632256

Normalement il faudrait utiliser l'enum Color .....

Sinon est-ce que les lignes :
ListView.ListItems(nb).ListSubItems.Add = colortexte
ListView.ListItems(nb).ListSubItems.Add = colorfond
Compilent ?

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Messages postés
11
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
15 janvier 2009

non je suis pas en .net
tous fonctionne correctement sauf pour la couleur de fond

donc je voudrais savoir comment je fais pour

soit mettre une couleur sur une case si possible

soit mettre la couleur sur le fond de la ligne complete

merci pour votre aide
Messages postés
14833
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 décembre 2021
157
Bonjour

Dans ce cas, il faudrait que tu refasse un topic, et là tu aura une meilleurs chance d'avoir une réponse, car je n'ai jamais fais cela en VB6.

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1