未删除列表视图图标.以另一种方式显示
本文关键字:另一种 方式 显示 图标 视图 删除 删除列 列表 | 更新日期: 2023-09-27 17:55:23
我有一个包含几列的列表视图。列表视图的 SmallImageList 包含三个图标;向上箭头、向下箭头和文件夹图标。单击其中一个列标题时,列表将按该值排序,为了说明这一点,在标题中插入一个图标,显示其 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
,导致所有标题(单击的标题除外)都获得了文件夹图标,这对我来说很奇怪。我尝试添加一个新图标,上面只有透明颜色。这实际上清除了所有图标,但它在图标应该在的地方留下了一个空白。有没有办法将图标对齐放在右侧,这样它就不会移动每一列的标题文本?
在MSDN参考中有一个非常干净的例子
您正在执行的操作非常不同,但可能对您有所帮助的是将列排序图像的 .visible 属性设置为其他列的 false。
我自己解决了这个问题。我试图将图标放在文本的右侧,但是通过在清除 imageKey 后将列的 TextAlign 属性设置为任何内容,文件夹图标停止显示。
所以我消除了症状,但我仍然不知道这种疾病是什么。