Разблокировка и удаление файлов из списка

У меня сложный вопрос для вас, ребята...

Я заполнил элемент списка со следующим кодом:

    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

Это получает thumnbnail от связки pngs из файла...

Все работает отлично, пока я не доберусь до кнопки удаления...

    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)

Каждый раз, когда я пытаюсь удалить выбранный файл, он, кажется, все еще используется кнопкой, которая заполнила список...

Любые подсказки о том, как избавиться от выбранного элемента и изображения из списка?

заранее спасибо

2 ответа

Решение

Спасибо всем за ваш ответ. Визуал Винсент прав, я имел ввиду по имени лол.

Решено! Одна изящная маленькая строчка решила мою проблему: GC.Collect() после удаления элемента из списка.

Еще раз спасибо за ваш опыт.

Попробуй это.

il.images.add(Image.FromStream(New MemoryStream(File.ReadAllBytes(file))))

Это создает новое изображение отдельно от вашего файла.

Другие вопросы по тегам