Сведения о вопросе

Fhohir

15:08, 16th August, 2020

Теги

c#   .net   winforms   listview    

Отключение ListView в C#,, но все еще показывает текущий выбор

Просмотров: 441   Ответов: 3

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

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

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



  Сведения об ответе

piter

23:01, 10th August, 2020

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


  Сведения об ответе

VCe znayu

03:39, 5th August, 2020

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

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


  Сведения об ответе

lesha

14:10, 24th August, 2020

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

    private void listViewABC_SelectedIndexChanged(object sender, EventArgs e)
    {
        listViewABC.SelectedItems.Clear();
    }


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться