多列 ListView 上的图标
Posted
技术标签:
【中文标题】多列 ListView 上的图标【英文标题】:Icon on a Multicolumn ListView 【发布时间】:2011-06-02 14:19:31 【问题描述】:我用这个:
Public Shared Sub FulfillListView(ByVal Icon As Icon, ByVal Item1 As String, ByVal Item2 As String, ByVal sender As Object, ByVal e As System.EventArgs)
Dim imageListSmall As New ImageList()
vehicles_prod.OpenOrdersLB.SmallImageList = imageListSmall
Try
Dim SubItem As New ListViewItem("", 0)
imageListSmall.Images.Add(Icon)
SubItem.SubItems.Add(Item2)
SubItem.SubItems.Add(Item1)
vehicles_prod.OpenOrdersLB.Items.AddRange(New ListViewItem() SubItem)
Catch ex As Exception
MessageBox.Show(ex.Message, "=> FulfillListView")
End Try
End Sub
为了填充多列ListView 在每行的开头(子项目行)我想要一个图标,每次都不同 我看到的唯一图标是最后输入的图标,所有行都相同 请帮助我在每行中使用不同的图标。
【问题讨论】:
【参考方案1】:是的,您一遍又一遍地创建图像列表。每个项目都有相同的 imageIndex,0。所以项目只能有相同的图标,你添加的最后一个。这将解决问题:
Public Shared Sub FulfillListView(ByVal Icon As Icon, ByVal Item1 As String, ByVal Item2 As String, ByVal sender As Object, ByVal e As System.EventArgs)
If vehicles_prod.OpenOrdersLB.SmallImageList Is Nothing Then
vehicles_prod.OpenOrdersLB.SmallImageList = New ImageList
End If
vehicles_prod.OpenOrdersLB.SmallImageList.Images.Add(Icon)
Dim SubItem As New ListViewItem("", vehicles_prod.OpenOrdersLB.SmallImageList.Images.Count - 1)
'' etc...
但如果列表视图包含很多项目,请不要这样做。图像列表会变得非常大,可能会有很多重复。这让它变慢了。显式管理图像列表变得很重要。你可以和设计师一起填写图片列表,也许这样比较合适。
【讨论】:
新年快乐。最后,我要非常感谢您的回答,这是最好的回答。而且我发现我的代码中有一个错误(我是从“订单”表的错误列中读取的)。再次感谢您。以上是关于多列 ListView 上的图标的主要内容,如果未能解决你的问题,请参考以下文章