ListView i problem ze zmianą koloru w wierszu

0

Witam,
problem jest następujący :

W głównym formie mam kontrolkę ListView. Co jakiś czas wywoływane jest zdarzenie aktualizacji poszczególnych elementów w tej liście. Lista posiada dość dużo pozycji (ListViewItem lvi). I o ile nie ma problemu gdy metoda aktualizująca tą listę przedstawia się mniej więcej następująco :

lvi.SubItems[2].Text = tekst;

o tyle jest problem gdy wygląda tak :

lvi.SubItems[2].ForeColor = Color.Red;

W liście istotnie zmienia się kolor tekstu dla danej pozycji w kolumnie 2, ale zmiana odbywa się dużym kosztem czasu procesora (gdy lista jest Visible = true) i przez to lista zaczyna się "rysować" z góry do dołu zamiast zwyczajnie tak jak w pierwszym przypadku po prostu zmienić wartość w tym polu.

Czy ktoś wie dlaczego tak się dzieje i co można z tym zrobić ?

0

jeszcze raz w kwestii wyjaśnienia :

gdy zmienia się wartość tekstową listViewItem to odświeżenie na ekranie jest natychmiastowe, ale gdy dochodzi do tego również zmiana koloru tego tekstu to odświeżenie (czyli pokazanie nowej wartości na ekranie ze zmienionym kolorem tekstu) trwa znacznie więcej (jest to zauważalne). Trwa dokładnie tyle i wygląda dokładnie tak samo jakby się całą listę z Visible = false przełączyło na true.

Jaki jest na to sposób ?

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1