listview выбрать фоновый цвет элемента

Должен ли я программно управлять цветом фона\выделения в элементе Listview при выборе с помощью кода?

Итак, если я сделаю это: listView1.Items[1].Selected = true;

Нужно ли мне также делать это, чтобы он выглядел выделенным, как это происходит при выборе щелчком мыши: listView1.Items[1].BackColor = Color.Blue;

(и очистить его при изменении выбора)

Я бы подумал, что Selected = true также будет выполнять «фоновый цвет \ выделение», которое происходит при щелчке мыши. Я что-то упускаю?


person Gern Blanston    schedule 02.11.2009    source источник


Ответы (2)


Получил ли элемент управления фокус? Если нет, настройка по умолчанию — скрыть выбор, когда элемент управления не имеет фокуса — см. свойство HideSelection.

person Matt Breckon    schedule 02.11.2009
comment
Сохраняет ли установка HideSelection=False, а затем выделение фокуса управления различиями, фон элемента синим или это бежевый цвет (который я едва вижу на своем мониторе)? - person Gern Blanston; 02.11.2009
comment
Удаление фокуса из списка меняет выделение на бежевый цвет на моем компьютере с Windows 7 - это трудно увидеть, должен признать. Если вы хотите, чтобы выделение было синим, вам нужно будет вручную управлять состоянием выбора и установить цвет фона элемента. - person Matt Breckon; 02.11.2009

Вам не нужно самостоятельно обрабатывать код подсветки, но элемент будет отображаться выделенным только в том случае, если элемент управления ListView имеет фокус. Добавьте listView1.Select() после выбора элемента и посмотрите, поможет ли это.

В противном случае вам нужно будет установить свойство HideSelection в ListView на false.

person jheddings    schedule 02.11.2009