2010-06-22 4 views
2

J'ai un contrôle listview, à ce contrôle J'ajoute des lignes qui contiennent des données d'image, nom de fichier, position (il est pris à un point dans une matrice 4 dimensions), temps pris. Pour rendre les choses sympas, je veux ajouter une icône 'supprimer' à ma quatrième colonne afin que l'utilisateur puisse revoir l'image et décider s'il faut la conserver ou non, comment ajouter une image/icône à cette 4ème cellule dans chaque rangée?Comment ajouter une image à ListViewItem ou ListView C#

public void addItemToImageListview(string details, string timestamp) 
{ 
     string reftype = (!exp_image_radiobtn.Checked) ? "Ref" : "Data"; 
     ListViewItem lvi = new ListViewItem(); 

     if (details.Contains("[ERROR]")) 
     { 
      reftype = "[ERROR]"; 
      details = details.Substring(0, details.IndexOf("[ERROR]")); 
     } 

     lvi.Text = details; 
     lvi.SubItems.Add(reftype); 
     lvi.SubItems.Add(timestamp); 
     lvi.SubItems.Add(image icon?); 

Je l'ai regardé à travers Google, mais beaucoup de choses est vieux ...

Comme Aren a demandé, c'est une application WinForms, C#, 3.5.

+1

Im pas WPF Winforms en supposant? – Aren

+1

Vous auriez raison Aren. – flavour404

Répondre

3

Malheureusement, dans WinForms, le rendu d'une colonne en tant qu'image devient douloureux. Vous devez créer un ListView dessiné par le propriétaire et fournir la logique pour dessiner cette colonne.

Heureusement, il y a l'open source ObjectListView wrapper, ce qui rend les images de dessin dans les colonnes ListView de sous-élément trivial:

alt text

+0

Merci, je suis en train de répondre à cette question mais ce n'était pas vraiment ce que je cherchais - c'est un projet massif. Merci. – flavour404

+0

Malheureusement, vous n'avez pas vraiment beaucoup de bonnes options. Retravailler un ListView pour le rendre ownerdrawn n'est pas beaucoup plus facile, et est certainement un moyen d'introduire plus de problèmes (si vous n'avez jamais écrit un contrôle owner-draw personnalisé auparavant). – LBushkin

Questions connexes