Salut,
j'ai une listeview contenant plusieurs colonnes, j'aimerais colorer quelques une.
comment ça se fait?
Merci
Version imprimable
Salut,
j'ai une listeview contenant plusieurs colonnes, j'aimerais colorer quelques une.
comment ça se fait?
Merci
Bonjour,
voir ici
Merci, j'ai déja consulter ce lien et j'ai testé ce code, mais ça ne colorie rien.
Bonjour,
Poutant il fonctionne.
Tu peux même facilement l'adapter pour coloriser chaque cellule d'une colonne en alternance pour une meilleure visibilité.
Après, pour pouvoir t'aider, il nous faudrait plus d'info.Code:
1
2
3
4
5
6
7
8
9 Sub ColoriseAlterne() Dim LignePaire As Boolean = False Dim lvi As ListViewItem For Each lvi In Me.ListView1.Items lvi.UseItemStyleForSubItems = False If LignePaire Then lvi.SubItems(0).BackColor = Color.Cyan Else lvi.SubItems(0).BackColor = Color.LightGreen LignePaire = Not LignePaire Next End Sub
As-tu un message d'erreur ? As-tu suivi en pas à pas ?
Montre nous le code que tu utilises.
merci :)
je fais comme ça:
au niveau du chargement de l'interface.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 liste_livraisons.View = View.Details liste_livraisons.Columns.Add("N° d'expedition", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Date d'expedition", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Bureau douanier", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("N° dossier AP", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Montant livraison AP", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("N° facture Frs", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Nombre de colis", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Poids", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("N° dossier", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Type", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Montant livraison ", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("N° facture Frs", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Nombre de colis", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Poids", 120, HorizontalAlignment.Left) Dim LignePaire As Boolean = False Dim lvi As ListViewItem For Each lvi In liste_livraisons.Items lvi.UseItemStyleForSubItems = False If LignePaire Then lvi.SubItems(0).BackColor = Color.Cyan Else lvi.SubItems(0).BackColor = Color.LightGreen LignePaire = Not LignePaire Next
mais aucune colonne n'est coloriée
Là, c'est normal puisque le code permet de colorer une cellule des lignes de données de la Listview.
Donc tu souhaites colorer les entêtes de colonnes. C'est çà ?
bonjour
Pour les subitems tu peux faire comme dit par rv261..
Pour les headers ,il faut prendre soi meme la customization par le biais de l'event DrawColumnHeader comme ceci:
De meme pour customizer le dessin pour les events subsequentsCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load liste_livraisons.OwnerDraw = True liste_livraisons.View = View.Details liste_livraisons.Columns.Add("N° d'expedition", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Date d'expedition", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Bureau douanier", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("N° dossier AP", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Montant livraison AP", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("N° facture Frs", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Nombre de colis", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Poids", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("N° dossier", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Type", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Montant livraison ", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("N° facture Frs", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Nombre de colis", 120, HorizontalAlignment.Left) liste_livraisons.Columns.Add("Poids", 120, HorizontalAlignment.Left) End Sub Private Sub liste_livraisons_DrawColumnHeader(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawListViewColumnHeaderEventArgs) Handles liste_livraisons.DrawColumnHeader Dim sf As New StringFormat() Try ' Store the column text alignment, letting it default ' to Left if it has not been set to Center or Right. Select Case e.Header.TextAlign Case HorizontalAlignment.Center sf.Alignment = StringAlignment.Center Case HorizontalAlignment.Right sf.Alignment = StringAlignment.Far End Select ' Draw the standard header background. ' comment this : e.DrawBackground() Dim brushBounds As SolidBrush Select Case e.ColumnIndex Case 0, 1 brushBounds = New SolidBrush(Color.Aquamarine) Case 2, 3 brushBounds = New SolidBrush(Color.LightPink) Case 4, 5 brushBounds = New SolidBrush(Color.BlanchedAlmond) Case Else brushBounds = New SolidBrush(Color.Yellow) End Select e.Graphics.FillRectangle(brushBounds, e.Bounds) ' Draw the header text. Dim headerFont As New Font("Helvetica", 10, FontStyle.Bold) Try e.Graphics.DrawString(e.Header.Text, headerFont, _ Brushes.Red, e.Bounds, sf) Finally headerFont.Dispose() brushBounds.Dispose() End Try Finally sf.Dispose() End Try End Sub End Class
drawitem,drawsubitem.....
bon code....
Pour que la solution proposé par "MABROUKI" fonctionne, places la propriété "OwnerDraw" de ton ListView à True.
MERCI beaucoup,
mais j'aimerais colorer des cellules, ou des colonnes, par exemple N° d'expedition avec une couleur pour les distinguer...
j'ai essayé mais j'arrive seulement à colorier le contenu non les colonnes ayant les memes valeurs?
et ou' je dois mettre le code, au niveau du load de la page ? pendant l'ajout.?