Couleur de fond d'une case d'un ListView [Résolu]

NHenry 14132 Messages postés vendredi 14 mars 2003Date d'inscription 21 avril 2018 Dernière intervention - 27 mars 2008 à 12:40 - Dernière réponse : NHenry 14132 Messages postés vendredi 14 mars 2003Date d'inscription 21 avril 2018 Dernière intervention
- 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
Afficher la suite 

6 réponses

Répondre au sujet
cs_lim 329 Messages postés jeudi 20 novembre 2003Date d'inscription 10 mai 2014 Dernière intervention - 27 mars 2008 à 13:48
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_lim
NHenry 14132 Messages postés vendredi 14 mars 2003Date d'inscription 21 avril 2018 Dernière intervention - 27 mars 2008 à 14:20
0
Utile
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
Commenter la réponse de NHenry
59cortex59 11 Messages postés lundi 31 mars 2008Date d'inscription 15 janvier 2009 Dernière intervention - 11 juin 2008 à 14:48
0
Utile
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
Commenter la réponse de 59cortex59
NHenry 14132 Messages postés vendredi 14 mars 2003Date d'inscription 21 avril 2018 Dernière intervention - 11 juin 2008 à 15:46
0
Utile
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
Commenter la réponse de NHenry
59cortex59 11 Messages postés lundi 31 mars 2008Date d'inscription 15 janvier 2009 Dernière intervention - 11 juin 2008 à 16:17
0
Utile
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
Commenter la réponse de 59cortex59
NHenry 14132 Messages postés vendredi 14 mars 2003Date d'inscription 21 avril 2018 Dernière intervention - 11 juin 2008 à 16:30
0
Utile
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
Commenter la réponse de NHenry

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.