protected virtual void DrawListViewSubItems (Graphics dc, ListView control, ListViewItem item)
{
int columns_count = control.Columns.Count;
int count = Math.Min (item.SubItems.Count, columns_count);
// 0th item already done (in this case)
for (int i = 1; i < count; i++)
DrawListViewSubItem (dc, control, item, i);
// Fill in selection for remaining columns if Column.Count > SubItems.Count
Rectangle sub_item_rect = item.GetBounds (ItemBoundsPortion.Label);
if (item.Selected && (control.Focused || !control.HideSelection) && control.FullRowSelect) {
for (int index = count; index < columns_count; index++) {
ColumnHeader col = control.Columns [index];
sub_item_rect.X = col.Rect.X - control.h_marker;
sub_item_rect.Width = col.Wd;
dc.FillRectangle (control.Focused ? SystemBrushes.Highlight : SystemBrushes.Control,
sub_item_rect);
}
}
}