0
         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ドキュメントでは、このデリゲートパラメータとして静的な非メンバー関数を使用していますが、クラスのプログレスバーメンバーを更新したいと思います。私はここで何が間違っているのですか?

私は.NET2.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 に答える