例如上图的效果文字在上面 背景图在下面            listView1.LargeImageList = imageList1;
            //listView1.SmallImageList = imageList1;
            for (int j = 0; j <200; j++)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.SubItems[0].Text = "btn"+j;
                lvi.ImageIndex = 0;                listView1.Items.Add(lvi);
            }

解决方案 »

  1.   

    设置图片
    ListViewItem item = new ListViewItem("1");
    Image image = ConvertToImage("");
    imageList1.Images.Add(image);
    item.ImageIndex = 1;
    listView1.Items.Add(item);
    item.SubItems.Add("");
    item.SubItems.Add("");
    public static byte[] ConvertToBytes(string fileName) {
      Image image = Image.FromFile(fileName);
      BinaryFormatter bf = new BinaryFormatter();
      MemoryStream ms = new MemoryStream();
      bf.Serialize(ms, image);
      byte[] result = new byte[ms.Length];
      ms.Position = 0;
      ms.Read(result, 0, result.Length);
      ms.Close();
      return result;
      }
      

  2.   

    建议楼主用 wpf 实现这个效果比较理想用 WinForm 也可以,实现比较麻烦// 1、设置 listView1.OwnerDraw = true;
    // 2、在 listView1_DrawItem 事件中加入 Draw Item 的代码
    // 在绘制的过程中还要判断很多参数
    // 例如:当前的视图、当前视图对应的 ImageList、当前项的文本对齐、图片对齐、背景色等等private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
    {
    e.DrawDefault = false; SizeF sizef =
    e.Graphics.MeasureString(e.Item.Text, e.Item.Font); Graphics g = e.Graphics; Image image = 
    e.Item.ListView.LargeImageList.Images[e.Item.ImageIndex]; g.DrawImage(
    image,
    e.Bounds.Left + (e.Bounds.Width - image.Width) / 2,
    e.Bounds.Top + (e.Bounds.Height - image.Height) / 2,
    image.Height,
    image.Width); g.DrawString(
    e.Item.Text,
    e.Item.Font,
    new SolidBrush(e.Item.ForeColor),
    e.Bounds.Left + (e.Bounds.Width - sizef.ToSize().Width) / 2,
    e.Bounds.Top + (e.Bounds.Height - sizef.ToSize().Height) / 2);
    }// 最头疼的是,如果要实现完整的 Item 功能
    // 用户还需要根据 State 判断 Item 的当前状态进行绘制 
    switch (e.State)
    {
    case ListViewItemStates.Checked: // 已选中
    case ListViewItemStates.Focused: // 拥有焦点
    case ListViewItemStates.Grayed: // 禁用
    case ListViewItemStates.Selected: // 已选定
    case ListViewItemStates.Hot: // 位于鼠标指针下
    case ListViewItemStates.Indeterminate: // 不确定状态
    case ListViewItemStates.Marked: // 被标记
    ...
    }// 那样是会死人的 :(