【发布时间】:2015-11-26 00:20:19
【问题描述】:
我有一个难题要问你们......
我一直在用这段代码填充一个列表视图项:
Dim loc5 As String
loc5 = "C:\Users\JoseLuis\Dropbox\files\0. Image\4. Galería\Collection"
Dim il As New ImageList
il.ColorDepth = ColorDepth.Depth32Bit
ListView1.LargeImageList = il
ListView1.SmallImageList = il
ListView1.LargeImageList.ImageSize = New System.Drawing.Size(28, 28)
For Each file In System.IO.Directory.GetFiles(loc5)
Dim list As New ListViewItem(IO.Path.GetFileName(file.ToString))
Dim listnoex As New ListViewItem(IO.Path.GetFileNameWithoutExtension(file.ToString))
list.Text = IO.Path.GetFileName(file.ToString)
listnoex.Text = IO.Path.GetFileNameWithoutExtension(file.ToString)
If list.Text.Contains(".PNG") Or list.Text.Contains(".png") Then
il.Images.Add(file, Drawing.Image.FromFile(file))
ListView1.Items.Add(listnoex.Text, il.Images.Count - 1)
End If
Next
它从文件中的一堆 png 中获取缩略图...
一切都很好,直到我到达删除按钮...
Dim loc5 As String
Dim named As String
loc5 = "C:\Users\JoseLuis\Dropbox\files\0. Image\4. Galería\Collection\"
Dim item As ListViewItem
item = ListView1.SelectedItems.Item(0)
named = loc5 & (item.Text) & ".png"
item.Remove()
My.Computer.FileSystem.DeleteFile(Name, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin, FileIO.UICancelOption.ThrowException)
每次我尝试删除所选文件时,填充列表的按钮似乎仍在使用它...
关于如何从列表视图中处理所选项目和图像的任何线索?
提前致谢
【问题讨论】:
-
你在
DeleteFile()方法中的第一个参数叫做Name,你是不是想用named? -
另外,不要检查您的文本是否同时包含
.PNG和.png,而是使用.ToLower()方法:list.Text.ToLower().Contains(".png")。 -
另外,您遇到异常了吗?如果有请留言。
-
您的缩略图图像必须是新图像。 il.Images.Add(file, NEW Drawing.Image.FromFile(file)) (或类似的东西,因此它与文件分开)。
标签: vb.net listview dispose imagelist