2015-11-25 100 views
-2

我在显示列表视图中的图标时遇到困难。 我试过这段代码,但没有任何反应。Listview图标不显示

Dim imageList1 As ImageList 
    imageList1 = New ImageList() 
    imageList1.Images.Add(Bitmap.FromFile("C:\Users\Documents\Visual Studio 2012\Projects\MYPS\MYPSApp (client-local.vbp)\Images\UserListview.ico")) 
    mvarListView.SmallImageList = imageList1 

其实,我不想上面的代码,因为它确实是硬编码的。 我想要的是: 在我的列表视图中,有一个名为“SmallImageList”的属性。 单击该属性图像的集合给我一个0-27的图像列表。 (见图片)

Collection of Images in Designer

我想显示的是#27图标列表视图我的左边,怎么样?

Dim clmX As System.Windows.Forms.ColumnHeader 
     Dim itmX As System.Windows.Forms.ListViewItem 

mvarListView.View = System.Windows.Forms.View.Details 

     mvarListView.MultiSelect = False 
     mvarListView.GridLines = True 
     mvarListView.LabelEdit = False 

     mvarListView.Columns.Clear() 
     mvarListView.Items.Clear() 


itmX = mvarListView.Items.Add("") 

      On Error Resume Next 
      'UPGRADE_ISSUE: MSComctlLib.ListItem property itmX.SmallIcon was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="CC4C7EC0-C903-48FC-ACCC-81861D12DA4A"' 
      itmX.Selected = CShort(listnode.selectSingleNode("icon").nodeTypedValue) 

      ' itmX.ImageKey = CShort(listnode.selectSingleNode("icon").nodeTypedValue) 
      **itmX.ImageKey = 27** '<-- not working :(

     itmX.Text = CStr(listnode.selectSingleNode("text").nodeTypedValue) 
      itmX.Tag = listnode.selectSingleNode("type").nodeTypedValue 

         subitemnodes = listnode.selectNodes("subitem") 
      For i = 1 To columncount - 1 
       'UPGRADE_WARNING: Lower bound of collection itmX has changed from 1 to 0. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="A3B628A0-A810-4AE2-BFA2-9E7A29EB9AD0"' 
       If itmX.SubItems.Count > i Then 
        itmX.SubItems(i).Text = CStr(subitemnodes(i - 1).nodeTypedValue) 
       Else 

        itmX.SubItems.Insert(i, New System.Windows.Forms.ListViewItem.ListViewSubItem(Nothing, CStr(subitemnodes(i - 1).nodeTypedValue))) 
       End If 
      Next 

请帮忙。

感谢, 佑

No Icons

+1

'itmX.ImageIndex = 27'很难想象如果你尝试了任何东西,你会错过intellisense – Plutonix

+0

你是什么意思呢想念intellisense?这是输出,它没有在我的列表视图左边的任何图标..(见顶部图片) –

+0

[智能感知](http://i.imgur.com/VB9p1YG.jpg) – Plutonix

回答

0

这真的去Plutonix,因为他在评论中提出的建议,但这里的荣誉属于:

在你的代码有这样的行你说不行:

itmX.ImageKey = 27 

这并不是一个很好的工作的原因所在:ImageKey SE通过分配给每个图像的字符串键而不是其位置索引来对当前图像进行分类。你想要使用的是ImageIndex,如下所示:

itmX.ImageIndex = 27 

试试看。如果您将ListView上的SmallImageList属性设置为图像列表,它应该可以工作。

+0

您好阿德里安爵士,我试过“itmX.ImageIndex = 27”,但它仍然无法正常工作。相同的输出,在listview中没有图标...任何想法为什么? –

+0

即使我将'mvarListView.View = System.Windows.Forms.View.Details'更改为 'mvarListView.View = System.Windows.Forms.View.SmallIcon'lcl 11/26/2015' –

+0

您是否尝试过其他任何其他指数超过27?比如说5,12或19? – Adrian