myWebClient->DownloadProgressChanged += gcnew DownloadProgressChangedEventHandler( &Form1::DownloadProgressCallback );
给出错误:
1>。\ Form1.cpp(26):错误C3352:'void Form1 :: DownloadProgressCallback(System :: Object ^,System :: Net :: DownloadProgressChangedEventArgs ^)':指定的函数与委托类型不匹配'void(System :: Object ^,System :: Net :: DownloadProgressChangedEventArgs ^)'
文档使用静态非成员函数作为此委托参数,但我想更新Form1
类的进度条成员。我在这里做错了什么?
我使用的是.NET 2.0,所以请尽量将语言保留为反对。
答案 0 :(得分:2)
成员函数的委托将被声明(在表单中):
myWebClient->DownloadProgressChanged += gcnew DownloadProgressChangedEventHandler(this, &Form1::DownloadProgressCallback );
基本上,第一个参数是定义成员函数的对象。在这种情况下,this
应该有效。
答案 1 :(得分:1)
将对象传递给委托构造函数。
gcnew DownloadProgressChangedEventHandler( this, &Form1::DownloadProgressCallback );