Недостатком розыгрыша владельца является то, что при его включении владелец (вы) должен рисовать все. Вы почти полностью одиноки.
Если вам нужны визуальные стили, вам нужно напрямую вызывать API-интерфейсы VisualStyles, чтобы делать то, что вы хотите. Если вы хотите показать выбранные, сфокусированные, включенные / отключенные состояния, то вам нужно написать код, чтобы справиться со всеми ними.
Это не прямой ответ на ваши проблемы со списком, но в качестве примера того, как использовать VisualStyles, вот как я использовал VisualStyles в нарисованном владельцем TreeView для рисования значка Плюс / Минус:
// Draw Expand (plus/minus) icon if required
if (ShowPlusMinus && e.Node.Nodes.Count > 0)
{
// Use the VisualStyles renderer to use the proper OS-defined glyphs
Rectangle expandRect = new Rectangle(iconLeft-1, midY - 7, 16, 16);
VisualStyleElement element = (e.Node.IsExpanded) ? VisualStyleElement.TreeView.Glyph.Opened
: VisualStyleElement.TreeView.Glyph.Closed;
VisualStyleRenderer renderer = new VisualStyleRenderer(element);
renderer.DrawBackground(e.Graphics, expandRect);
}