2010-11-08 5 views
3

Я пишу listView1.Items [1] .Selected = true; но не выделяет этот предмет .... что не так? Я также изменил свойство HideSelection на False, так что теперь, по крайней мере, я могу увидеть серый цвет выделения, но где синий цвет? когда я нажимаю Mouse, он синий, но когда я устанавливаю его с кодом, как указано выше, он не синий ... что я делаю неправильно?Цвет выбранного элемента в ListView

ответ

3

Это ваши цвета Windows, которые вас обманывают.
Я только что протестировал его, и с HideSelection установите значение false, я установил выбранный элемент, и я вижу, что этот элемент становится серым, что является моим определением цвета Windows для выбранного элемента в неактивном элементе управления.
Если вы хотите, чтобы он стал синим, что, скорее всего, является цветом выбранного элемента в активном элементе управления, установите фокус на ListView, указав listView1.Focus(), и вы увидите тот цвет, о котором говорите, но вы «Я просто изменил фокус на него, поэтому будьте осторожны.

+0

Хм, хорошо, так почему, если я использую ListBOX, у меня нет этой проблемы? – Bohn

+1

Ну, это технически не «проблема», это именно то, как Microsoft решила это сделать. Я спрошу Билла в следующий раз, когда увижу его =) ListBox, похоже, не заботится о цвете неактивного элемента управления, он постоянно использует цвет активного управления. Но очень хорошее внимание к деталям. – BeemerGuy

+0

LOL! лучше спросить Хейльсберга! он был главным архитектором! ... К сожалению, я не могу использовать технику «Фокус», потому что я набираю строку поиска внутри текстового поля и выделяю результат в этом ListView, поэтому, если я перемещаю фокус на ListView, тогда пользователь не могу продолжать печатать в текстовом поле :( – Bohn

2
listView1.Select(); 
listView1.Items[index].Selected = true; 
Смежные вопросы