C# ObjectListView显示图标
试图在ObjectListview中放置图标,下面是我的一段代码,其中应该放置图标:C# ObjectListView显示图标,c#,icons,objectlistview,C#,Icons,Objectlistview,试图在ObjectListview中放置图标,下面是我的一段代码,其中应该放置图标: objectListView1.SmallImageList = imageList1; deleteColumn.IsEditable = true; deleteColumn.ImageGetter = delegate { return 0; }; deleteColumn.AspectGetter
objectListView1.SmallImageList = imageList1;
deleteColumn.IsEditable = true;
deleteColumn.ImageGetter = delegate
{
return 0;
};
deleteColumn.AspectGetter = delegate
{
return "Delete";
};
imageList1已经有了一个图像,这段代码应该在“Delete”旁边放一个图标,但它根本没有出现,通过cookbooks和Google查看,我仍然不知道。有人能帮我吗
这是完整的表单代码,以备需要:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
objectListView1.AllowDrop = true;
objectListView1.DragEnter += new DragEventHandler(objectListView1_DragEnter);
objectListView1.DragDrop += new DragEventHandler(objectListView1_DragDrop);
objectListView1.CellEditActivation = BrightIdeasSoftware.ObjectListView.CellEditActivateMode.SingleClick;
objectListView1.CellEditStarting += deleteItems;
objectListView1.SmallImageList = imageList1;
deleteColumn.IsEditable = true;
deleteColumn.ImageGetter = delegate
{
return 0;
};
deleteColumn.AspectGetter = delegate
{
return "Delete";
};
}
private void objectListView1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void objectListView1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop, true))
{
string[] droppedFiles = (string[]) e.Data.GetData(DataFormats.FileDrop);
foreach (string path in droppedFiles)
{
if (File.Exists(path))
{
FileObject fo = new FileObject(path, "added later");
objectListView1.AddObject(fo);
}
}
}
}
private void deleteItems(object sender, BrightIdeasSoftware.CellEditEventArgs e)
{
if(e.Column == deleteColumn)
{
e.Cancel = true;
objectListView1.RemoveObject(e.RowObject);
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}要使图像显示在列中的文本旁边,您必须:
ObjectListView
连接到ImageList
(使用SmallImageList
属性)李>
ImageGetter
委托李>
图像列表中确实存在图像
不过,有一个陷阱。根据您的问题,我怀疑“删除”列可能不是
ObjectListView
中的第一列。以上步骤仅允许在第一列中显示图像。对于后续列,必须将showmagesonsubitems
属性设置为True。是吗?您看过MSDN上的文档了吗?它们通常提供足够的例子。Look and.ObjectListView实际上不是Microsoft产品,问题似乎与它有关,而不是与ImageList有关。谢谢各位,问题已经解决,我的ShowImageSubItems
设置为false,非常感谢下面的答案否,删除列位于第三列(客户要求,无法更改)嘿,谢谢,我错过了ShowImagesOnSubItems
,这真的是个问题,因为没有关于它的教程(或者可能我没有足够努力)。非常感谢:)