ListView control

jenya7
Дата: 12.05.2014 11:05:47
у меня есть листвью с и три сабайтема как видно на первой картинке.
после прогона я хочу поменять цвет фона (шрифта) третьего сабайтема.
 else
 {
      if (result_str.Contains("Error"))
      {
               item.SubItems[3].BackColor = Color.Red;
               item.SubItems[3].ForeColor = Color.Red;
               item.SubItems[3].Text = "FAIL";  
       }
       else
       {
               item.SubItems[3].BackColor = Color.Green;
               item.SubItems[3].ForeColor = Color.Green;
               item.SubItems[3].Text = "PASS";  
        }
}


но как видно на второй картинке цвет не меняется. что я делаю не так?
jenya7
Дата: 12.05.2014 11:06:08
VIT2708
Дата: 12.05.2014 11:36:05
jenya7,

менять нужно не subitem а item
jenya7
Дата: 12.05.2014 12:14:01
VIT2708
jenya7,

менять нужно не subitem а item


item.BackColor = Color.Red; тоже не меняет цвет
VIT2708
Дата: 12.05.2014 12:22:30
jenya7,

А вы так пробуете?

foreach (ListViewItem item in ListView1.Items)
{
  if ( item.Text.Contains("Error")) // или другое условие
  {
      item.ForeColor = Color.Red;
  }
}
jenya7
Дата: 12.05.2014 12:48:02
все равно цвет не меняется.
VIT2708
Дата: 12.05.2014 12:57:45
jenya7,

На скриншоте я не вижу error

foreach (ListViewItem item in ListView1.Items)
{
  if ( item.SubItem[3].Text.Contains("error").ToLower()) // или другое условие
  {
      item.ForeColor = Color.Red;
  }
}


Кстати вместо Contains может проще ==, также проверьте регистр букв или используйте в примере

И еще одно, ради интереса отобразите список в виде таблицы listView1.View = Details, и посмотрите результат
VIT2708
Дата: 12.05.2014 12:59:41
VIT2708,

И еще одно, ради интереса отобразите список в виде таблицы listView1.View = Details, и посмотрите результат

на эту фразу не обращайте внимания
jenya7
Дата: 12.05.2014 13:07:25
VIT2708
jenya7,

На скриншоте я не вижу error

foreach (ListViewItem item in ListView1.Items)
{
  if ( item.SubItem[3].Text.Contains("error").ToLower()) // или другое условие
  {
      item.ForeColor = Color.Red;
  }
}


Кстати вместо Contains может проще ==, также проверьте регистр букв или используйте в примере

И еще одно, ради интереса отобразите список в виде таблицы listView1.View = Details, и посмотрите результат


у меня вместо "error" "FAIL"

я не понимаю - почему это свойство сабайтема меняется item.SubItems[3].Text = "FAIL";
а это нет item.SubItems[3].BackColor = Color.Red;
jenya7
Дата: 12.05.2014 13:14:15
да так работает
  if (item.SubItems[3].Text.Contains("FAIL"))
        item.ForeColor =  Color.Red;

но у меня вся строка закрасилась красным а мне надо только там где "FAIL"