Dans une liste, vous pouvez avoir des icônes sur chaque élément.
Lors de l'affichage dans les Détails de la mode, l'icône est affichée dans la colonne la plus à gauche.
Puis-je afficher une icône dans une autre colonne?
source d'informationauteur leiflundgren
La
ListView
contrôle ne prend pas en charge les images dans des sous-éléments en mode natif. La meilleure chose à faire est de passer à unDataGridView
et l'utilisation d'unDataGridViewImageColumn
. Si cela n'est pas possible, alors vous aurez besoin de tirer les icônes de vous-même à l'aide de la coutume à attirer un soutien dans leListView
de contrôle. Pour ce faire, définissezListView.OwnerDraw = true
et gérer lesListView.DrawSubItem
etListView.DrawColumnHeader
événements.Utilisation P/Invoke et envoyer LVM_SETITEM message à la liste (vous devez définir LVS_EX_SUBITEMIMAGES de style sur le contrôle de la création ou via LVM_SETEXTENDEDLISTVIEWSTYLE), spécifiez le point d'index et l'index de l'image. Vous aurez besoin de le faire pour chaque élément de la liste que vous insérez.
ObjectListView est un wrapper autour d'une .NET Winforms ListView. Il prend en charge les images sur les points à l'aide de la p/invoke stratégie que @ligget78 mentionné. Elle résout également de nombreux autres problèmes courants avec une ListView.
Il vous permet de vous rendre très agréable à regarder ListViews avec un minimum d'effort:
le texte d'alt http://objectlistview.sourceforge.net/cs/_images/fancy-screenshot2.png
Hériter de la ListView et d'en tirer vos propres icônes.
L'icône est affichée dans la première colonne, et c'est aussi la base pour le clavier préfixe de recherche. Une solution possible pourrait être de modifier l'ordre des colonnes en définissant la DisplayIndex de la première colonne à autre chose.
Bien sûr, cela ne fonctionne que si vous avez besoin d'une icône dans une seule colonne.
Il n'y a pas .NET support pour cela.
Jetez un oeil à ce projet.
Prendre un butin à ceci:
http://social.msdn.microsoft.com/forums/en-US/winforms/thread/d25b4ffa-2ea4-43cd-a3ae-8dd0387197ae/
En plus de la accepté de répondre, vous devez gérer l'événement DrawItem ainsi, ou il ne fonctionnera pas.