Salut,
j'ai une listeview contenant plusieurs colonnes, j'aimerais colorer quelques une.
comment ça se fait?
Merci
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
merci
je fais comme ça:
au niveau du chargement de l'interface.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 çà ?
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
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 subsequents
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
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.?
Partager