Не удается заставить ListViewItem отображаться в цвете

Итак, я использую С# в приложении Windows Forms, и мой вопрос здесь о ListView. Все, что я хочу сделать, это отобразить ListViewItem определенным цветом в зависимости от значения. Теперь я попробовал традиционный метод:

ListViewItem li = new ListViewItem();
li.ForeColor = Color.Green;
li.Text = "Limit: " + wc.getCreditLimit();
listLimits.Items.Add(li);

Но результат, который я вижу в ListView:

ListViewItem: {Ограничение: 15000}

И нет, он не цветной

Другой метод, который я пробовал, заключался в инициализации ListViewItem с текстом в качестве аргумента, например:

ListViewItem li = new ListViewItem("Limit: " +   wc.getCreditLimit());
li.ForeColor = Color.Green;
listLimits.Items.Add(li);

Но это также дает тот же результат, что и раньше.

Другой метод, который я пробовал, заключался в том, чтобы добавить свойство Text ListViewItem следующим образом:

ListViewItem li = new ListViewItem("Limit: " + wc.getCreditLimit());
li.ForeColor = Color.Green;
listLimits.Items.Add(li.Text);

Теперь это отображает правильный текст в ListView, однако он все еще не окрашен!

Может кто-нибудь объяснить это странное поведение, потому что из того, что я прочитал, похоже, что это единственный подход к добавлению цвета в ListViewItem. Любые советы будут оценены, спасибо.


person Jalapeno    schedule 01.08.2016    source источник
comment
Приветствую голосование против ... теперь, если бы кто-то мог попытаться помочь, а не критиковать, это было бы здорово!   -  person Jalapeno    schedule 01.08.2016
comment
Согласно этому, вы все сделали правильно. Я подозреваю, что это обычная ошибка пользователя, возможно, ListView не в режиме Details или что-то еще. Что касается похоже, что это единственный подход к добавлению цвета в ListViewItem, вы не правы, есть и другие подходы: 1) WPF 2) нарисовано владельцем ListView 3) сторонний компонент.   -  person Sinatr    schedule 01.08.2016


Ответы (2)


Ваш код (первый абзац) работает просто отлично.

Если вы видите ListViewItem:{Limit:15000}, у вас есть проблема в другом месте.

Похоже, вы добавили неправильный тип объекта, но, поскольку это явно ListViewItem, вы не ..

Итак, я предполагаю, что вы добавляете его к ListBox вместо ListView.. Когда я это делаю, я получаю то, что вы видите:

введите здесь описание изображения

person TaW    schedule 01.08.2016
comment
Спасибо за понимание - person Jalapeno; 15.08.2016

Попробуй это:

listLimits.Items.Add(li);

Вы добавляете только текст, а не ListViewItem

listLimits.Items.Add(**li.Text**);
person Rafał Głowacki    schedule 01.08.2016
comment
вы читали мои первые два блока кода? Я пробовал это двумя разными способами - person Jalapeno; 01.08.2016