Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Vb.net 多栏列表视图上的图标_Vb.net_Winforms_Visual Studio 2010_Windows Xp - Fatal编程技术网

Vb.net 多栏列表视图上的图标

Vb.net 多栏列表视图上的图标,vb.net,winforms,visual-studio-2010,windows-xp,Vb.net,Winforms,Visual Studio 2010,Windows Xp,我用这个: 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 = i

我用这个:

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
要完全填充多列列表视图
在每行(子项行)的开头,我希望有一个图标,每次都不同
我看到的唯一图标是最后输入的图标,所有行的图标都相同

请帮助我在每行中设置不同的图标。
是的,您可以反复创建图像列表。每个项目都有相同的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包含很多项,就不要这样做。图像列表将变得相当大,可能会有很多重复。这使它变慢了。然后,显式管理图像列表变得非常重要。您可以提前向设计师填写图像列表,也许这是合适的。

新年快乐。最后,我想非常感谢你的回答,这是最好的一个。而且我在代码中发现了一个错误(我从“订单”表的错误列中读取)。再次感谢你。