Bonjour tout le monde,
Faute de pouvoir facilement mettre une couleur de fond sur la ligne d'entêtes de colonnes d'un ListView (ça peut se faire, je crois que j'ai vu ça sur CodeProject, mais c'est quand même du sport), j'ai coloré les articles en dessous.
Or, voilà ce qui se passe : sur la ligne du premier enregistrement, dans la première colonne la couleur de fond s'arrête à la fin du texte. Et elle reprend à la colonne suivante. Entre les deux, le fond est blanc.
Le problème ne se pose pas sur les lignes suivantes.
Il doit y avoir une explication, un peu comme, sur certains périphériques, une couleur de fond est initialisée jusqu'à la fin de la ligne, et si on veut l'arrêter avant il faut le préciser.
Est-ce qu'il y a d'autres astuces à connaître pour la mise en forme des ListView ?
Je ne me suis pas lancé dans le OwnerDraw, on verra peut-être plus tard.
Pour le moment j'ai obtenu quelque chose de plus homogène en mettant la même couleur de fond pour la ListView que pour les éléments qui sont dedans. Seul défaut, ça met la même couleur en bordure du ListView, au-dessus de la ligne d'entêtes de colonnes qui elle est blanche.
Ensuite, je me suis rendu compte que du coup ce n'est pas la peine de donner une couleur de fond aux éléments, puisqu'elle est déjà donnée par le contrôle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 foreach(window w in windows) { ListViewItem lvi = new ListViewItem(w.handle.ToString()); lvi.SubItems.Add((++i).ToString("0 ")); lvi.SubItems.Add(GetTitre(w.handle)); lvi.BackColor = Color.Yellow; F4.listView1.Items.Add(lvi); }
Partager