2013-05-07 4 views
4

Итак, у меня есть проблема в Visual Basic, я получил этот код, который загружает картинку.Включить кнопку при завершении загрузки изображения.

WC.DownloadFileAsync(New Uri("picturelinkhere"), "c:\myfile.jpg") 

После этого у меня есть код, который затемняется кнопку

Button1.Enabled = False 

скачать Дело в том, что я хочу ждать загрузки файла, чтобы закончить, прежде чем я снова включить Button1.

Я пытался использовать

System.Threading.Thread.Sleep(1000) 

Но проблема в том, что она делает прогрессбар в программе очень лага.

Любые идеи?

+0

вы скачиваете файл в потоке, отличном от основного потока? –

+0

Что это значит? Я добавил код файла загрузки в button1, больше нигде. – Thomja

+0

Не обращайте внимания, я не заметил, что вы вызываете метод Async объекта. –

ответ

3

Согласно MSDN:

Чтобы получить уведомление, когда файл доступен, добавьте обработчик события к событию DownloadFileCompleted.

Так, например, вы могли бы сделать что-то вроде этого:

AddHandler WC.DownloadFileCompleted, AddressOf DownloadFileCompleted 

А затем снова включить кнопку в методе обработчика событий, как это:

Private Sub DownloadFileCompleted(sender As Object, e As AsyncCompletedEventArgs) 
    Button1.Enabled = True 
End Sub 
+1

Отлично, если кто-то еще читает это, Стивен забыл упомянуть, что вам нужно Imports System.ComponentModel Кроме этого спасибо за помощь !!! Теперь он работает отлично! Я добавил addhandle прямо под кодом загрузки, а затем новый элемент внизу до окончания класса. Теперь люди узнают, посещают ли они этот вопрос. – Thomja