Изменить задний цвет элемента ListView при определенных условиях - PullRequest
0 голосов
/ 15 октября 2019

У меня есть просмотр списка, который состоит из трех столбцов, один из которых - столбец статуса. Я хочу, чтобы задний цвет ячейки в этом столбце окрашивался либо в зеленый, либо в красный цвет в зависимости от значения, которое там находится, но до сих пор мне не удалось найти правильное решение.

Я нашелмного информации о применении заднего цвета к полной строке, но пока ничего не говорится об этом для ячейки с определенным значением. По крайней мере, ничего, что работает.

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

1 Ответ

0 голосов
/ 15 октября 2019

Во-первых, когда вы создаете свои ListViewItem экземпляры, вам нужно установить ListViewItem.UseItemStyleForSubItems на false. Таким образом, ListViewItem Font, ForeColor и BackColor не будут использоваться для всех подэлементов.

Во-вторых, ваш оператор if должен проверить ListViewSubItem.Text свойство, а не результат ToString. ToString не просто возвращает текст.

Наконец, установите ListViewSubItem.BackColor на основе текста.

private void LoadListView()
{
   // Build up the ListViewItem that you're calling emp in your original question...
   emp.UseItemStyleForSubItems = false;
   if (emp.SubItems[2].Text == "AANWEZIG")
   {
      emp.SubItems[2].BackColor = Color.Green;
   }
}
...