C# 根据特定条件更改ListView项的背景色

C# 根据特定条件更改ListView项的背景色,c#,listview,backcolor,C#,Listview,Backcolor,我有一个由三列组成的列表视图,其中一列是“状态”列。我希望此列中单元格的背景颜色根据其中的值为绿色或红色,但到目前为止,我还没有找到正确的解决方案 我已经找到了很多关于将背景色应用于整行的信息,但是对于具有特定值的单元格,还没有找到这样做的信息。至少,似乎什么都不管用 if (emp.SubItems[2].ToString() == "AANWEZIG") { emp.BackColor = Color.Green;

我有一个由三列组成的列表视图,其中一列是“状态”列。我希望此列中单元格的背景颜色根据其中的值为绿色或红色,但到目前为止,我还没有找到正确的解决方案

我已经找到了很多关于将背景色应用于整行的信息,但是对于具有特定值的单元格,还没有找到这样做的信息。至少,似乎什么都不管用

if (emp.SubItems[2].ToString() == "AANWEZIG")
                {
                    emp.BackColor = Color.Green;
                }

首先,在创建
ListViewItem
实例时,需要设置为
false
。这样,
ListViewItem
Font
ForeColor
BackColor
就不会用于所有子项

其次,您的
if
语句需要检查
ListViewSubItem.Text
属性,而不是
ToString
的结果
ToString
不仅仅返回文本

最后,根据文本设置
ListViewSubItem.BackColor

private void LoadListView()
{
//建立您在原始问题中调用emp的ListViewItem。。。
emp.UseItemStyleForSubItems=false;
if(emp.SubItems[2].Text==“AANWEZIG”)
{
emp.子项[2]。BackColor=Color.Green;
}
}

当它的绘图与已有绘图相同时,尝试更改它;它在一个方法中,在启动时被调用。或者这不是你所指的吗?不,这里有一个drawitem方法,改变颜色是正常的。