У меня есть ListView с несколькими столбцами. SmallImageList ListView содержит три иконки; стрелка вверх, стрелка вниз и значок папки. При щелчке по одному из заголовков столбцов список сортируется по этому значению, и чтобы проиллюстрировать это, в заголовок вставляется значок, показывающий вверх или вниз от его SmallImageList. Это отлично работает.
Моя проблема в том, что при нажатии на новый столбец для сортировки значок в старом заголовке должен исчезнуть, но это не так. Вместо этого вставляется значок папки. Это происходит каждый раз, когда щелкается новый заголовок, поэтому в конечном итоге все заголовки заполняются значками папок.
Всякий раз, когда по столбцу щелкают, все столбцы перебираются, и их ImageKey устанавливается на пустую строку, а затем заменяется на ImageKey для стрелок, если это был столбец, по которому щелкнули. Пустая строка загружает значок папки.
for (int i = 0; i < m_LVCases.Columns.Count; i++)
{
m_LVCases.Columns[i].ImageKey = "";
if (i == e.Column)
{
if (m_ListViewColumnSorter.Order == SortOrder.Ascending)
m_LVCases.Columns[i].ImageKey = SortOrder.Ascending.ToString();
else if (m_ListViewColumnSorter.Order == SortOrder.Descending)
m_LVCases.Columns[i].ImageKey = SortOrder.Descending.ToString();
}
}
Я пока не могу публиковать скриншоты, так как у меня недостаточно репутации. У кого-нибудь есть решение полностью удалить значок из заголовка столбца, или я должен сделать что-то волшебное, чтобы отобразить это по-другому?
- Правка - Это проект, который я взял на себя, поэтому я пытаюсь собрать все воедино. Я обнаружил, что установка ImageKey для столбца на null
, в результате чего все заголовки (кроме одного клика) получили значок папки, что очень странно для меня. Я попытался добавить новую иконку с прозрачным цветом. Это действительно очистило все иконки, но оставило пробел в том месте, где должна была быть иконка. Есть ли способ разместить значок-выравнивание вправо, чтобы он не перемещал текст заголовка для каждого столбца?