【发布时间】:2020-08-25 15:40:06
【问题描述】:
你能帮我从目录中获得的文件中显示图标视图吗
这是我的代码。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SearchDir("g:\")
End Sub
Public Sub SearchDir(ByVal sDir As String)
Dim fil As String
Try
For Each dir As String In Directory.GetDirectories(sDir)
For Each fil In Directory.GetFiles(dir, " *.doc ")
ListView1.Items.Add(fil)
Next
SearchDir(dir)
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
这给了我一个结果,但是以字符串的形式显示它的路径
【问题讨论】:
-
您在问题中使用了
ImageList标签,但您的代码中没有ImageList的迹象,您也没有在问题中提及它。看起来您对自己需要做的事情很清楚,但您没有费心对其进行任何研究,而是希望我们为您做这件事。这不是这个网站的工作方式。ListView类的文档甚至包括一个使用ImageLists的代码示例。你需要先为自己努力。 -
在不相关的注释上,您不应该像这样一个一个地向
ListView添加项目。正如文档所述,首选选项是首先创建所有项目,然后通过一次调用AddRange将它们全部添加,但是,如果您要逐个进行,则需要调用BeginUpdate和 @987654330 @分别在你开始之前和结束之后。 -
谢谢@jmcilhinney。我搜索 Imagelist,但我不知道如何传递给它。这就是为什么我希望有人可以告诉我它是如何完成的。对不起,我是 vb.net 的新手
-
那你真的没看过,因为我知道网上有例子。没有证据表明您的代码中有任何努力,并且您在我发布几分钟后发布,所以从那时起您就没有尝试过。如果你只是花一两分钟“尝试”然后放弃,那么你并没有真正尝试。
-
@AndrewMortimer、this documentation 提到了
AddRange、BeginUpdate和EndUpdate。它没有指定首选或推荐使用AddRange。我很肯定我过去读过它,所以他们可能已经改变了它。无论如何,关键是在没有BeginUpdate和EndUpdate的情况下重复调用Add将在添加每个项目后重新绘制控件。这会以指数方式减慢速度,因此随着项目数量的增加尤其糟糕。