2012-12-16 20 views
0

我用Call.ProgressUpdate()打電話:我得到的參數未指定參數'發件人'和'e'?

Public Sub ProgressUpdate(sender As Object, e As DownloadProgressChangedEventArgs) 
    Console.WriteLine("{0}% completed", e.ProgressPercentage) 
    Call Main2() 
End Sub 

但我得到的錯誤:對於參數的「公用Sub ProgressUpdate(發送者爲對象,E作爲 '發件人' 未指定

參數System.Net .DownloadProgressChangedEventArgs)」。

辨參數 '公用Sub ProgressUpdate(發送者爲對象,例如作爲System.Net.DownloadProgressChangedEventArgs)' 的 'E' 未指定。

任何幫助,將不勝感激。

+0

當你調用'Call.ProgressUpdate()'時,你需要傳遞它兩個參數。 – jdigital

+0

@jdigital如果我使用'Call ProgressUpdate(sender,e)'我得到'sender'和'e'沒有聲明的錯誤 – davidwroxy

+0

請不要在VB.NET中使用'Call',除非它有意義。普通的方法調用應該是'Main2()'。 – Ryan

回答

2

這是不是很清楚爲什麼你直接調用這個方法,它應該是一個事件處理程序。您需要傳遞它所需的參數,但這不會起作用,因爲您無法創建DownloadProgressChangedEventArgs類的實例,因此無法訪問其構造函數。你需要打破這種成兩種不同的方法,如:

Private Sub ProgressUpdate(sender As Object, e As DownloadProgressChangedEventArgs) 
    ShowProgress(e.ProgressPercentage) 
End Sub 

Private Sub ShowProgress(percentage As Integer) 
    Console.WriteLine("{0}% completed", percentage) 
End Sub 

現在,你可以簡單地調用ShowProgress(0)來代替。

+0

謝謝,它現在有效! – davidwroxy