我有一个listview和列,我需要在listview中添加图标,如果我选择行意味着它应该是打开邮件图标,如果我没有选择行意味着它是因为它是Mail图标。
你们能告诉我逻辑......
谢谢!
答案 0 :(得分:6)
由于我不知道您如何将这些项目添加到ListView
,因此我只能为您提供一个示例代码段。在解决方案中添加ImageList
,并将这两个图标(已读和未读邮件图标)添加到此列表中。要使用图像将项目添加到列表视图控件,您可以执行以下操作:
ListViewItem item = new ListViewItem();
item.SubItems.Add("item1");
item.SubItems.Add("item2");
item.ImageIndex = 0;
listView1.Items.Add(item);
要在选择图标时更改图标,您应使用SelectedIndexChanged
事件:
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
listView1.SelectedItems[0].ImageIndex = 1;
}
请记住设置SmallImageList
属性。您可以使用列表视图属性或以编程方式在设计器中执行此操作:
listView1.SmallImageList = imageList1;
请注意,您必须将ImageIndex
属性设置为ImageList
中图标所在的索引,否则不会显示任何图标。
答案 1 :(得分:3)
您可以使用州图像列表:
var listViewItem1 = new ListViewItem(new string[] { "", "Subject2"}, -1);
var imageList1 = new ImageList(this.components);
var listView1 = new ListView();
...
// setup listview
listView1.StateImageList = imageList1;
...
// set up initial image index
listViewItem1.StateImageIndex = 1;
然后,如果单击行图像索引更改为下一个。因此,如果在您的图像列表中有邮件和邮件打开的图像,它将在它们之间切换。