Отключение ListView в C #, но по-прежнему показывает текущий выбор - PullRequest
7 голосов
/ 18 августа 2008

У меня есть элемент управления ListView, и я пытаюсь найти самый простой / лучший способ запретить изменение выбранных строк без скрытия выбранных строк.

Я знаю, что есть свойство HideSelection, но оно работает только тогда, когда ListView все еще включен (но не сфокусирован). Мне нужно, чтобы выбор был видимым, даже если ListView отключен.

Как я могу это реализовать?

Ответы [ 3 ]

2 голосов
/ 03 сентября 2008

Вы также можете сделать ListView ownerdraw. Затем вы получаете полный контроль над тем, как выглядят элементы, независимо от того, выбраны они или нет, или включен ли сам ListView или нет. DrawListViewItemEventArgs предоставляет способ попросить ListView нарисовать отдельные части элемента, поэтому вам нужно только нарисовать интересующие вас биты. Например, вы можете нарисовать фон элемента, но оставить его на ListView для рисования текст.

1 голос
/ 18 августа 2008

Есть два варианта, поменять выбранные строки, отключить цвета. Или измените все остальные строки, чтобы имитировать их отключение, кроме выбранной. Первый вариант, очевидно, самый простой, а второй вариант, очевидно, потребует дополнительной защиты.

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

0 голосов
/ 07 июля 2009

Реализуйте SelectedIndexChanged и сделайте это

    private void listViewABC_SelectedIndexChanged(object sender, EventArgs e)
    {
        listViewABC.SelectedItems.Clear();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...