Wie die Hintergrundfarbe eines Listview subitem ändert seinen eigenen Wert mit
Frage
Wie kann ich programmatisch die Hintergrundfarbe einer einzelnen Zelle in einer Listenansicht ändert seinen eigenen Wert mit?
Die Werte in der Spalte ColorFlag Kamen aus der Datenbank.
Hier ist mein Code:
foreach(DataRow dr in _dataTbl.Rows)
{
_markOW = dr["Mark"].ToString();
_stock = dr["Stock"].ToString();
_SteelSectio = dr["SteelSection"].ToString();
_colo = (Int32)dr["Color"];
ListViewItem _lvi = new ListViewItem(_markOW);
_lvi.SubItems.AddRange(new string[]{_SteelSectio, _stock, _colo.ToString()});
_myListView.Items.Add(_lvi); }
Hier ist der Code, dass ich habe versucht, die Hintergrundfarbe der Zellen zu ändern:
for (int _i = 0; _i < _owLV.Items.Count; _i++)
{
_myListView.Items[_i].UseItemStyleForSubItems = false;
_myListView.Items[_i].SubItems[3].BackColor = Color.FromArgb(_colo);
}
Vielen Dank im Voraus
Lösung
Soweit ich das beurteilen kann, haben Sie den Code sieht gut aus. Ich warf nur zusammen, um eine schnelle Windows Forms-Anwendung und warf einen Listview auf dem Formular mit zwei Spalten in der Detailansicht. Der folgende Code funktioniert gut.
var item1 = new ListViewItem( "Item 1");
item1.SubItems.Add( "Color" );
item1.SubItems[1].BackColor = Color.FromArgb( -16711936 );
item1.UseItemStyleForSubItems = false;
listView1.Items.Add( item1 );
Ich würde versuchen, die Einstellung Backcolor, bevor Sie das Element hinzufügen. Es sieht auch wie Sie alle Elemente auf die gleiche Farbe sind Einstellung, die wahrscheinlich nicht das, was Sie wollen.
Andere Tipps
Werfen Sie einen Blick auf diese Links gilt:
C # Listview Detail, Markieren Sie eine einzelne Zelle
ändern Farbe Listenansicht Zelle C # mit ( hat eine Arbeitslösung)
Der entscheidende Punkt ist dies einzustellen:
listView1.Items[0].UseItemStyleForSubItems = false;
Tun Sie dies:
foreach (DataRow dr in _dataTbl.Rows)
{
_markOW = dr["Mark"].ToString();
_stock = dr["Stock"].ToString();
_SteelSectio = dr["SteelSection"].ToString();
_color = (Int32)dr["Color"];
ListViewItem _lvi = new ListViewItem(_markOW);
_lvi.SubItems.AddRange(new string[] {_SteelSectio, _stock, _color.ToString() });
_lvi.UseItemStyleForSubItems = false;
_lvi.SubItems[2].BackColor = Color.FromArgb(_color);
_myListView.Items.Add(_lvi);
}