【问题标题】:Icon on a Multicolumn ListView多列 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
在每行的开头(子项目行)我想要一个图标,每次都不同
我看到的唯一图标是最后输入的图标,所有行都相同
请帮助我在每行中使用不同的图标。

【问题讨论】:

    标签: vb.net winforms visual-studio-2010 windows-xp


    【解决方案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...
    

    但如果列表视图包含很多项目,请不要这样做。图像列表会变得非常大,可能会有很多重复。这让它变慢了。显式管理图像列表变得很重要。你可以和设计师一起填写图片列表,也许这样比较合适。

    【讨论】:

    • 新年快乐。最后,我要非常感谢您的回答,这是最好的回答。而且我发现我的代码中有一个错误(我是从“订单”表的错误列中读取的)。再次感谢您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多