【问题标题】:BetterListView... unable to put an icon and filename on the same rowBetterListView...无法将图标和文件名放在同一行
【发布时间】:2015-09-17 16:17:26
【问题描述】:

我正在 Windows 10 上的 vb.net 中编码(不确定操作系统是否重要)。我想问一个关于 BetterListView Express 的问题。

在我的列表中,我先放一个图标,然后放文件名。问题是,文件名在最右边。有谁知道如何获取图标右侧的文件名?

这是一个sn-p:

exeIcon = Drawing.Icon.ExtractAssociatedIcon(exePath)

imgList.ImageSize = New Size(16, 16)

With imgList.Images
    .Add(exePath, exeIcon)
    .Add(imgList.Images(0))
End With

With blist.Items
    .Add(imgList.Images(0))
    .Add(p.ProcessName)
End With

我可以从代码中看出进程名称将位于单独的行上。我只是不知道如何将它们放在同一条线上。任何帮助表示赞赏!

【问题讨论】:

  • 你也是堆栈溢出的新手,所以我会同情你。尝试阅读stackoverflow.com/help/how-to-ask
  • 是的,我是堆栈溢出的新手。我阅读了您帖子中的链接,看看我哪里出错了。我的标题措辞不好,让人不感兴趣。我去看看能不能修改标题。感谢您指出我们如何提问。
  • 现在标题好点了吗?我仍然可以根据您的想法进行更改...
  • 感谢您的尝试!标题应该简短,易于阅读,并总结问题。像这样BetterListVeiw Item Text Alignment not Working as Expected
  • 那么问题应该显示您用于将项目添加到列表中的代码的 sn-p。

标签: listview icons filenames


【解决方案1】:

我从 here 下载了他们的示例并打开了 vb 项目。

在这个文件中,您应该能够找到您需要的所有示例。

这里是相关的sn-p:

    Dim itemCentered = New BetterListViewItem() With {
        .Group = listView.Groups(0), _
        .Text = "Centered" _
    }

    itemCentered.SubItems.Add(New BetterListViewSubItem() With {
                              .AlignHorizontalImage = BetterListViewImageAlignmentHorizontal.OverlayCenter, _
                              .Image = imageItem _
                              })

    listView.Items.AddRange(New BetterListViewItem() {
    itemCentered,
    New BetterListViewItem("Image before text") With { _
        .Group = listView.Groups(0), _
        .Image = imageItem _
    }, New BetterListViewItem("Image after text") With { _
        .AlignHorizontalImage = BetterListViewImageAlignmentHorizontal.AfterTextCenter, _
        .AlignVerticalImage = BetterListViewImageAlignmentVertical.Middle, _
        .Group = listView.Groups(0), _
        .Image = imageItem _
    }, New BetterListViewItem("Top left") With { _
        .AlignHorizontal = TextAlignmentHorizontal.Left, _
        .AlignVertical = TextAlignmentVertical.Top, _
        .Group = listView.Groups(1), _
        .Image = imageItem _
    }, New BetterListViewItem("Middle center") With { _
        .AlignHorizontal = TextAlignmentHorizontal.Center, _
        .AlignVertical = TextAlignmentVertical.Middle, _
        .Group = listView.Groups(1), _
        .Image = imageItem _
    }, New BetterListViewItem("Bottom Right") With { _
        .AlignHorizontal = TextAlignmentHorizontal.Right, _
        .AlignVertical = TextAlignmentVertical.Bottom, _
        .Group = listView.Groups(1), _
        .Image = imageItem _
    }})

特别注意Image 属性是如何设置的。

New BetterListViewItem("Top left") With { _
    .AlignHorizontal = TextAlignmentHorizontal.Left, _
    .AlignVertical = TextAlignmentVertical.Top, _
    .Group = listView.Groups(1), _
    .Image = imageItem _
}

【讨论】:

  • 我尝试了所有我能想到的编码工作,但除了失败一无所获。下面是我的代码以及错误消息。我尝试了有无将属性设置为true。所有这些都带有红色下划线。 'blist 是可访问的名称 blistListViewColumnHeader1.AlignHorizo​​ntal = True '错误:严重性代码描述项目文件行我尝试了所有其他对齐属性,但没有一个有效。我有每个对齐语句的所有代码,但是这个文本框说我有太多字符。感谢您的帮助,是我做错了吗?
  • 你好。对不起,我没有看到你的回答。猜猜我太忙于试图让我的评论正确。我尝试了代码,但行为并没有改变任何东西。 .addrange 的工作方式与 .add 相同。非常感谢您提供帮助。我真的很感激我的朋友。
  • 认为我即将放弃 BetterListView 控件。也许我可能对 Metro TreeView 有更好的运气......快速编辑:Metro 没有 TreeView 哈哈
  • 我希望我能在这里放一个屏幕截图,这样你就知道我在说什么了。哦,是的,坚持使用 BetterListView :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 1970-01-01
  • 2017-02-10
相关资源
最近更新 更多