2010-06-22 84 views
2

我有一个listview控件,对这个控件我添加了包含图像数据,文件名,位置(它在4维矩阵中的一个点上)的行,所花费的时间。为了让事情变得更好,我想为我的第四列添加一个'删除'图标,以便用户可以查看图像并决定是否保留图像,如何将图像/图标添加到每行中的第4个单元格?如何将图像添加到ListViewItem或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?); 

我已经通过谷歌看了,但很多东西是老了......

由于AREN问,这是一个WinForms应用程序,C#3.5。

+1

林假设的WinForms不是WPF? – Aren 2010-06-22 22:32:13

+1

你会是对的阿伦。 – flavour404 2010-06-22 22:40:57

回答

3

不幸的是,在WinForms渲染中,一列作为图像会变得很痛苦。您必须创建一个自绘的ListView并提供绘制该列的逻辑。

幸运的是,开源ObjectListView wrapper,这使得绘制图像ListView中子项目列琐碎:

alt text

+0

谢谢,我正在回答这个问题,虽然它不是我真正想要的 - 这是一个庞大的项目。谢谢。 – flavour404 2010-06-23 22:13:58

+0

不幸的是,你并没有很多好的选择。对ListView进行重新设计以使其获得ownerdrawn并不容易,而且绝对是一种引入更多问题的方法(如果您以前从未写过自定义的所有者绘制控件)。 – LBushkin 2010-06-23 22:55:38