protected virtual bool DrawListViewItemOwnerDraw (Graphics dc, ListViewItem item, int index)
{
ListViewItemStates item_state = ListViewItemStates.ShowKeyboardCues;
if (item.Selected)
item_state |= ListViewItemStates.Selected;
if (item.Focused)
item_state |= ListViewItemStates.Focused;
DrawListViewItemEventArgs args = new DrawListViewItemEventArgs (dc,
item, item.Bounds, index, item_state);
item.ListView.OnDrawItem (args);
if (args.DrawDefault)
return false;
if (item.ListView.View == View.Details) {
int count = Math.Min (item.ListView.Columns.Count, item.SubItems.Count);
// Do system drawing for subitems if no owner draw is done
for (int j = 0; j < count; j++) {
if (!DrawListViewSubItemOwnerDraw (dc, item, item_state, j)) {
if (j == 0) // The first sub item contains the main item semantics
DrawListViewItem (dc, item.ListView, item);
else
DrawListViewSubItem (dc, item.ListView, item, j);
}
}
}
return true;
}