Альтернативный цвет в ListView C # (.Net 3.5)? - PullRequest
3 голосов
/ 24 октября 2010

Я собираюсь установить альтернативный цвет для моих строк ListView.Я видел эту ссылку , но я использую .Net Framework 3.5 SP1, поэтому я не могу его использовать.Я использовал следующий код, но у него есть проблема с сортировкой ListView

ListViewItem newListViewItem = new ListViewItem(
    new string[] { item.name.ToString(), 
                   item.code.ToString() });
newListViewItem.BackColor = new Color(240,240,240);
newListViewItem.UseItemStyleForSubItems = true;
newListViewItem.Font = new Font("Tahoma", 9);
listView1.Items.Add(newListViewItem);

Не могли бы вы подсказать, как мне это сделать?

Ответы [ 2 ]

8 голосов
/ 24 октября 2010

Это не совсем понятно из вашего фрагмента, но я думаю, вам нужны чередующиеся цвета. Элементы с четными номерами окрашены в одну сторону, а нечетные - в другую. Да, очень эффективно в качестве руководства по чтению, когда у вас есть большое количество столбцов в представлении.

И да, это испортится, когда вы сортируете предметы. Сразу после сортировки вам понадобится простой цикл for, который изменяет свойство BackColor.

    private static void recolorListItems(ListView lv) {
        for (int ix = 0; ix < lv.Items.Count; ++ix) {
            var item = lv.Items[ix];
            item.BackColor = (ix % 2 == 0) ? Color.Beige : Color.White;
        }
    }

Позвоните после сортировки. Или после заполнения ListView. Я сосу на цвета, пожалуйста, выберите свой собственный.

0 голосов
/ 24 октября 2010

Вот простой способ сделать это -> Альтернативный фон

...