2016-08-01 29 views
0

So verwende ich C# in einer Windows Forms-Anwendung und meine Frage hier ist über die ListView. Ich möchte das ListViewItem nur in einer bestimmten Farbe anzeigen, abhängig vom Wert. Jetzt habe ich die traditionelle Methode der versucht:Kann ListViewItem nicht in Farbe anzeigen

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

Aber das Ergebnis, das ich in der Listview zu sehen ist:

ListViewItem: {Limit: 15000}

Und nein, es ist nicht farbig

Eine andere Methode, die ich versuchte, war, das ListViewItem mit Text als ein Argument wie folgt zu initialisieren:

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

Aber das erzeugt auch das gleiche Ergebnis wie zuvor.

Eine andere Methode habe ich versucht war, die Eigenschaft Text des ListViewItem wie so do:

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

Nun ist diese zeigt den richtigen Text, Es ist jedoch noch nicht gefärbt!

Kann jemand bitte dieses seltsame Verhalten erklären, denn von dem, was ich gelesen habe, sieht es so aus, als ob dies der einzige Ansatz zum Hinzufügen von Farbe zu einem ListViewItem ist. Jeder Rat würde geschätzt werden, danke.

+0

Beifall für die Down-Abstimmung ... nun, wenn jemand versuchen könnte eher zu helfen als zu kritisieren das wäre toll! –

+0

Laut [dieser] (http://stackoverflow.com/q/3400146/1997232) hast du es richtig gemacht. Ich vermute einen üblichen * Benutzerfehler *, vielleicht ist 'ListView' nicht im' Details' Modus oder etwas anderes. Für * "sieht es so aus, als wäre dies der einzige Ansatz, um einem ListViewItem Farbe hinzuzufügen" * Sie sind falsch, es gibt andere * Ansätze *: 1) WPF 2) [Eigentümer gezeichnet] (http://stackoverflow.com/q/9066408/1997232) ListView 3) Drittanbieterkomponente. – Sinatr

Antwort

1

Ihr Code (erster Absatz) funktioniert gut hinzufügen.

Wenn Sie ListViewItem:{Limit:15000} sehen, haben Sie ein Problem an anderer Stelle.

Es sieht aus, als ob Sie einen falschen Objekttyp hinzugefügt, aber da es eindeutig ein ListViewItem ist nicht Sie tun ..

Also ich denke, Sie es zu einem ListBox anstelle eines ListView hinzufügen .. Wenn ich tun, dass ich bekommen, was Sie sehen:

enter image description here

+0

Danke für die Einsicht –

0

Try this:

listLimits.Items.Add(li); 

Sie einfach den Text nicht ListViewItem

listLimits.Items.Add(**li.Text**); 
+0

hast du meine ersten zwei Code-Blöcke gelesen? Ich habe das auf zwei verschiedene Arten versucht –