如何针对特定的子项值更改listView的背景颜色?我有一个状态列,我想将所有“ACTIVE”的背面颜色更改为黄色。
答案 0 :(得分:0)
您想要访问条目的SubItems
。在非虚拟列表视图中,这将是这样的:
foreach(ListViewItem lvi in listView1)
{
if(lvi.SubItems[colToCheck].Text == "ACTIVE")
{
lvi.BackColor = Color.Yellow;
}
}
将此位置放在已填充列表的位置。由于您在评论中提到了表单加载,我认为存在一个用List填充ListView的方法。之后放上上面的代码片段。
如果您有虚拟列表,请检查RetrieveVirtualItem
中的相应项属性:
private void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
var lvi = GenerateListViewItemFromTheStore(e.ItemIndex);
if (lvi != null)
{
if (lvi.SubItems[colToCheck].Text == "ACTIVE")
lvi.BackColor = Color.Yellow;
}
else
e.Item = new ListViewItem();
}
在两个代码段中colToCheck
是要检查文本等于 ACTIVE 的列的列索引。