0
         myWebClient->DownloadProgressChanged += gcnew DownloadProgressChangedEventHandler( &Form1::DownloadProgressCallback );

给出错误:

1>.\Form1.cpp(26) : error C3352: 'void Form1::DownloadProgressCallback(System::Object ^,System::Net::DownloadProgressChangedEventArgs ^)' : 指定的函数与委托类型'void ( System::Object ^,System::Net::DownloadProgressChangedEventArgs ^)'

该文档使用静态非成员函数作为此委托参数,但我想更新Form1该类的进度条成员。我在这里做错了什么?

我使用的是 .NET 2.0,所以请尽量保持语言过时。

4

2 回答 2

2

成员函数的委托将被声明(在表单内):

 myWebClient->DownloadProgressChanged += gcnew DownloadProgressChangedEventHandler(this,  &Form1::DownloadProgressCallback );

基本上,第一个参数是定义成员函数的对象。在这种情况下,this应该工作。

于 2012-06-18T15:57:49.250 回答
1

将对象传递给委托构造函数。

gcnew DownloadProgressChangedEventHandler( this, &Form1::DownloadProgressCallback );
于 2012-06-18T15:57:47.653 回答