Couleur de fond d'une case d'un ListView

Résolu
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 27 mars 2008 à 12:40
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 11 juin 2008 à 16:30
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

cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
27 mars 2008 à 13:48
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
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
27 mars 2008 à 14:20
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
0
59cortex59 Messages postés 11 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 15 janvier 2009
11 juin 2008 à 14:48
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
11 juin 2008 à 15:46
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
0

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

Posez votre question
59cortex59 Messages postés 11 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 15 janvier 2009
11 juin 2008 à 16:17
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
11 juin 2008 à 16:30
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
0
Rejoignez-nous