Sometimes it can be challenging to read the Details view in a ListView, especially if the rows are long.  This article shows how to add shading to every second row to make a ListView easier to read.

ListView Shaded Rows

As you may know, you can alter the appearance of individual ListViewItem’s such as the Font and BackColor.  But these values are ignored unless you set the item’s UseItemStyleForSubItems property to true.

The following code demonstrates how to shade every other row in a ListView:

ListView listView = this.ListView_Products;
listView.View = View.Details;
int i = 0;
Color shaded = Color.FromArgb( 240, 240, 240 );

foreach (Product product in products)
{
    ListViewItem item = new ListViewItem( product.Name );
    item.SubItems.Add( product.Version );
    item.SubItems.Add( product.Description );
    item.SubItems.Add( product.Status );
    if (i++ % 2 == 1)
    {
        item.BackColor = shaded;
        item.UseItemStyleForSubItems = true;
    }
    listView.Items.Add( item );
}
Share and Enjoy:
  • Digg
  • Twitter
  • Facebook
  • Reddit
  • StumbleUpon
  • LinkedIn
  • Google Bookmarks
  • Slashdot