Мне удалось заставить его работать, используя следующее решение: Предполагая, что у вас есть представление списка OwnerDraw = True, DrawItem / DrawSubItem = e.DrawDefault = true;FullRowSelect = False;HideSelection = False;Вы можете поместить приведенный ниже код в желаемое событие ListView MouseUp, где «myListViewName» заменяет ваше имя listiview:
foreach (ListViewItem lstview in myListViewName.Items)//cleaning and resetting the original/default colors for all items as not selected.
{
lstview.UseItemStyleForSubItems = false;
lstview.SubItems[1].BackColor = Color.White; //settings for column 2 only
lstview.SubItems[1].ForeColor = Color.Black; //settings for column 2 only
}
var info = myListViewName.HitTest(e.X, e.Y); //getting the row index for the item selected.
var row = info.Item.Index;
myListViewName.Items[row].Selected = true; //passing the index to the listview to be selected
myListViewName.Items[row].SubItems[1].BackColor = Color.DodgerBlue; //changing color of single row/column selected
myListViewName.Items[row].SubItems[1].ForeColor = Color.White; //changing color of single row/column selected
Надеюсь, что решение может помочь, в моем случае, мой просмотр списка имеет разные цвета длялишние столбцы, и я не хотел терять цвет при выборе полной строки с цветом подсветки по умолчанию.он может управлять столько столбцов, сколько вы хотите.