我没有为参数'sender'和'e'指定参数?

时间:2012-12-16 17:12:20

标签: vb.net

我使用Call.ProgressUpdate()来致电:

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

但是我得到了错误:

  

没有为'Public Sub ProgressUpdate(sender As Object,e As System.Net.DownloadProgressChangedEventArgs)'的参数'sender'指定参数。

  

未在'Public Sub ProgressUpdate(sender As Object,e As System.Net.DownloadProgressChangedEventArgs)'的参数'e'中指定参数。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分: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)。