Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ListView control / 16 сообщений из 16, страница 1 из 1
12.05.2014, 11:05
    #38638454
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
у меня есть листвью с и три сабайтема как видно на первой картинке.
после прогона я хочу поменять цвет фона (шрифта) третьего сабайтема.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 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";  
        }
}



но как видно на второй картинке цвет не меняется. что я делаю не так?
...
Рейтинг: 0 / 0
12.05.2014, 11:06
    #38638455
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
...
Рейтинг: 0 / 0
12.05.2014, 11:36
    #38638505
VIT2708
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
jenya7,

менять нужно не subitem а item
...
Рейтинг: 0 / 0
12.05.2014, 12:14
    #38638570
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
VIT2708jenya7,

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

item.BackColor = Color.Red; тоже не меняет цвет
...
Рейтинг: 0 / 0
12.05.2014, 12:22
    #38638582
VIT2708
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
jenya7,

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

Код: c#
1.
2.
3.
4.
5.
6.
7.
foreach (ListViewItem item in ListView1.Items)
{
  if ( item.Text.Contains("Error")) // или другое условие
  {
      item.ForeColor = Color.Red;
  }
}
...
Рейтинг: 0 / 0
12.05.2014, 12:48
    #38638609
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
все равно цвет не меняется.
...
Рейтинг: 0 / 0
12.05.2014, 12:57
    #38638632
VIT2708
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
jenya7,

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

Код: c#
1.
2.
3.
4.
5.
6.
7.
foreach (ListViewItem item in ListView1.Items)
{
  if ( item.SubItem[3].Text.Contains("error").ToLower()) // или другое условие
  {
      item.ForeColor = Color.Red;
  }
}



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

И еще одно, ради интереса отобразите список в виде таблицы listView1.View = Details, и посмотрите результат
...
Рейтинг: 0 / 0
12.05.2014, 12:59
    #38638638
VIT2708
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
VIT2708,

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

на эту фразу не обращайте внимания
...
Рейтинг: 0 / 0
12.05.2014, 13:07
    #38638649
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
VIT2708jenya7,

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

Код: c#
1.
2.
3.
4.
5.
6.
7.
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;
...
Рейтинг: 0 / 0
12.05.2014, 13:14
    #38638662
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
да так работает
Код: c#
1.
2.
  if (item.SubItems[3].Text.Contains("FAIL"))
        item.ForeColor =  Color.Red;


но у меня вся строка закрасилась красным а мне надо только там где "FAIL"
...
Рейтинг: 0 / 0
12.05.2014, 13:24
    #38638678
VIT2708
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
jenya7,

так не получится

Если вы хотите что бы закрасилась только ячейка вам немного нужно переделать существующий контрол (ListView) то есть расширить функционал существующего
...
Рейтинг: 0 / 0
12.05.2014, 14:07
    #38638746
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
VIT2708jenya7,

так не получится

Если вы хотите что бы закрасилась только ячейка вам немного нужно переделать существующий контрол (ListView) то есть расширить функционал существующего

спасибо за информацию. могли бы гады сделать нормальне контролы. эх куда детство дельфи ушел.
...
Рейтинг: 0 / 0
12.05.2014, 14:21
    #38638770
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
вместо:
Код: c#
1.
if ( item.SubItem[3].Text.Contains("error").ToLower()) 



это:
Код: c#
1.
if (item.SubItem[3].Text.ToLower().Contains("error")) 
...
Рейтинг: 0 / 0
12.05.2014, 14:49
    #38638815
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
добавил вначале item.UseItemStyleForSubItems = false;
и вот результат
...
Рейтинг: 0 / 0
12.05.2014, 15:06
    #38638847
VIT2708
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
jenya7,

Интересно, я и не думал что есть такая настройка!!!!.
...
Рейтинг: 0 / 0
12.05.2014, 15:44
    #38638899
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView control
VIT2708jenya7,

Интересно, я и не думал что есть такая настройка!!!!.

случайно наткнулся, дай думаю ткну авось повезет.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ListView control / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]