Se invece di utilizzare il metodo My.Computer.Network.DownloadFile ti crei un tuo metodo puoi personalizzare la tua finestra tipo:
Ti crei una classe
codice:
Imports System.IO
Imports System.Net
Imports System.Text
Public Class Download
Public Shared Event Status(ByVal value As Integer, ByVal masValue As Integer)
Public Shared Sub DownloadFile()
Dim wr As HttpWebRequest = CType(WebRequest.Create("http://www.mioSito.com/mioFile.exe"), HttpWebRequest)
Dim ws As HttpWebResponse = CType(wr.GetResponse(), HttpWebResponse)
Dim str As Stream = ws.GetResponseStream()
Dim inBuf(1024000) As Byte
Dim bytesToRead As Integer = CInt(inBuf.Length)
Dim bytesRead As Integer = 0
While bytesToRead > 0
Dim n As Integer = str.Read(inBuf, bytesRead, bytesToRead)
If n = 0 Then
Exit While
End If
bytesRead += n
bytesToRead -= n
System.Threading.Thread.Sleep(2)
RaiseEvent Status(bytesRead, ws.ContentLength)
End While
Dim fstr As New FileStream("C:\mioFile.exe", FileMode.OpenOrCreate, FileAccess.Write)
fstr.Write(inBuf, 0, bytesRead)
str.Close()
fstr.Close()
End Sub
End Class
E poi richiami nella tua finestra personalizzata il metodo shared
codice:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
AddHandler Download.Status, AddressOf myDownload_Status
Download.DownloadFile()
End Sub
Private Sub myDownload_Status(ByVal value As Integer, ByVal masValue As Integer)
ProgressBar1.Maximum = masValue
ProgressBar1.Value = value
End Sub
End Class
Prova dovrebbe fungere.