Отключить подсветку списка для 1 или более столбцов, если для fullrowselect установлено значение true - PullRequest
0 голосов
/ 25 января 2019

У меня есть список с 5 столбцами. Это представление владельца. Подробности. опция для полной строки верна, но как избежать, скажем, последнего столбца, который будет выделен при выборе строки? или, если быть более точным, для этого конкретного просмотра списка мне нужно, чтобы только первые 2 столбца были включены для щелчка / выбора, и только эти первые 2 столбца получили бы выделение по умолчанию.

1 Ответ

0 голосов
/ 25 января 2019

Мне удалось заставить его работать, используя следующее решение: Предполагая, что у вас есть представление списка 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

Надеюсь, что решение может помочь, в моем случае, мой просмотр списка имеет разные цвета длялишние столбцы, и я не хотел терять цвет при выборе полной строки с цветом подсветки по умолчанию.он может управлять столько столбцов, сколько вы хотите.

...