A more simpler if thats to confusing

vb Code:
  1. Imports System.Net
  2.  
  3. Public Class MainForm
  4.  
  5.     Private ReadOnly temp As String = "http://download.piriform.com/ccsetup327.exe"
  6.     Private m_dictionary As New Dictionary(Of WebClient, String)
  7.  
  8.     Private Sub Download(ByVal Path As String, ByVal FileName As String)
  9.         Dim client As New WebClient
  10.         Dim file As String = IO.Path.Combine(Path, FileName)
  11.  
  12.         AddHandler client.DownloadProgressChanged, AddressOf DownloadProgressChanged
  13.         AddHandler client.DownloadFileCompleted, AddressOf DownloadFileCompleted
  14.  
  15.         client.DownloadFileAsync(New Uri(temp), file)
  16.         Me.m_dictionary.Add(client, file)
  17.     End Sub
  18.  
  19.     Private Sub DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)
  20.         Dim file As String = m_dictionary.Item(CType(sender, WebClient))
  21.         Me.RichTextBox1.AppendText(String.Format("File {0} {1}{2}", file, e.ProgressPercentage & "%", vbNewLine))
  22.         Me.RichTextBox1.ScrollToCaret()
  23.     End Sub
  24.  
  25.     Private Sub DownloadFileCompleted(ByVal sender As Object, _
  26.                                                        ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
  27.         Dim client As WebClient = DirectCast(sender, WebClient)
  28.         client.Dispose()
  29.         m_dictionary.Remove(client)
  30.     End Sub
  31.  
  32. End Class