Вы можете сделать это без рисования владельцем списка:
// create a new list item with a subitem that has white text on a blue background
ListViewItem lvi = new ListViewItem( "item text" );
lvi.UseItemStyleForSubItems = false;
lvi.SubItems.Add( new ListViewItem.ListViewSubItem( lvi,
"subitem", Color.White, Color.Blue, lvi.Font ) );
Аргументы Color для конструктора ListViewSubItem управляют основным цветом и цветом фона подэлемента. Здесь необходимо установить для UseItemStyleForSubItems
значение False для элемента списка, в противном случае изменения цвета будут игнорироваться.
Я думаю, что ваше решение для рисования владельцем также сработало бы, но вы должны помнить, чтобы изменить цвет текста (переднего плана), когда вы меняете фон на синий, иначе текст будет трудно увидеть.