Frage

Wie kann ich programmatisch die Hintergrundfarbe einer einzelnen Zelle in einer Listenansicht ändert seinen eigenen Wert mit?

alt text

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

War es hilfreich?

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);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top