Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未删除ListView图标。以另一种方式显示?_C#_Winforms_Listview_Icons - Fatal编程技术网

C# 未删除ListView图标。以另一种方式显示?

C# 未删除ListView图标。以另一种方式显示?,c#,winforms,listview,icons,C#,Winforms,Listview,Icons,我有一个包含多个列的列表视图。ListView的SmallImageList包含三个图标;向上箭头、向下箭头和文件夹图标。单击其中一个列标题时,列表将按该值排序,为了说明这一点,将在标题中插入一个图标,显示其SmallImageList中的向上或向下箭头。这个很好用 我的问题是,当单击一个新列进行排序时,旧标题中的图标应该消失,但它不会消失。而是插入一个文件夹图标。每次单击新标题时都会发生这种情况,因此最终所有标题都会填充文件夹图标 每当单击一列时,所有列都会被遍历,并且它们的ImageKey设

我有一个包含多个列的列表视图。ListView的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();
    }
}
for(int i=0;i
我还不能发布截图,因为我没有足够的声誉。有没有人有办法从列标题中完全删除图标,或者我需要用另一种方式来显示图标


--编辑--这是我接手的一个项目,所以我正试图把事情拼凑起来。我发现将该列的ImageKey设置为
null
,导致所有标题(单击的标题除外)都得到了文件夹图标,这对我来说非常奇怪。我尝试添加一个新图标,上面只有透明的颜色。这实际上清除了所有的图标,但在图标应该出现的地方留下了一个空白。有没有办法将图标对齐放在右边,这样它就不会移动每一列的标题文本?

MSDN参考资料中有一个非常清晰的例子


您所做的是非常不同的,但是可能有帮助的是,对于其他列,将列sortimage的.visible属性设置为false。

在MSDN参考中有一个非常清晰的例子


您所做的是非常不同的,但是可能有帮助的是,对于其他列,将列sortimage的.visible属性设置为false。

我自己解决了这个问题。我试图将图标放在文本的右侧,但是在清除imageKey之后,通过将列的TextAlign属性设置为任意值,文件夹图标就停止显示


所以我消除了症状,但我仍然不知道是什么病

我自己解决了这个问题。我试图将图标放在文本的右侧,但是在清除imageKey之后,通过将列的TextAlign属性设置为任意值,文件夹图标就停止显示


所以我消除了症状,但我仍然不知道是什么病

该MSDN引用用于Webcontrol ListView,它与Winforms ListView控件不同。例如,Winforms ListView没有SortDirection属性或实现排序事件。现在,我正在响应ColumnClick事件,以便根据单击的列进行排序和设置图像。我查看了ListView列的名称,应该通过将imageKey设置为无效值来删除图像。我做了一个小的示例应用程序,这很有效,所以我的应用程序中肯定有完全不同的错误。有人知道问题出在哪里吗?MSDN引用是针对Webcontrol ListView的,它与Winforms ListView控件不同。例如,Winforms ListView没有SortDirection属性或实现排序事件。现在,我正在响应ColumnClick事件,以便根据单击的列进行排序和设置图像。我查看了ListView列的名称,应该通过将imageKey设置为无效值来删除图像。我做了一个小的示例应用程序,这很有效,所以我的应用程序中肯定有完全不同的错误。有人知道问题出在哪里吗?