- 締切済み
ProgressBarについて
私はVB2008を使ってます。 質問ですが、 Button1でクリック後、以下のイベントについてなんですが、 Dim wc As New System.Net.WebClient() wc.DownloadFile("http://localhost/image.gif", "c:\test.gif") wc.Dispose() または・・・ My.Computer.Network.DownloadFile( _ "http://localhost/image.gif", "C:\image.gif", _ "username", "password", _ True, 60000, True, FileIO.UICancelOption.DoNothing) 等を使ってダウンロードの進行状況をProgressBarで現したいのですが、 可能でしょうか? それと同時にラベル1に(0%)等の進行度も表示させたいと思ってます。 この方法が何処を検索しても出ません・・・。 同じ様な検索でテキストにURLを貼り付けて、Button1を押してProgressを動かし、ダウンロードするというのがありましたが、 この質問は、ソースに直接http://...を上記のソースと同じ様に 記述したい場合、どうすれば良いですか? どなたか教えて頂けませんか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
WebClientのDownloadFileではダウンロードが終わるまで他での制御が出来ないのでDownloadFileAsyncなどの非同期で実行するメソッドで行いましょう ボタンのClickイベントで dim wc as new Net.Webclient() AddHandler wc.DownloadProgressChanged, AddressOf DLProgessCallback dim uri as New Uri("http://localhost/sample.gif") Label1.Text = "0%" ProgressBar1.Value = 0 wc.DownloadFileAsync( uri, "sample.gif") と記述 Shared Sub DLProgessCallback(ByVal s as object, ByVal e as DownloadProgressChanedEventArgs) dim n as integer = e.ProgressPercentage label1.text = String.Format("{0}%", n ) ProgessBar1.Value = n End Sub といった具合でいいと思いますよ ダウンロード完了のイベントが必要ならばDownloadComplatedについて調べて見ましょう
補足
ソースを記述して頂き、大変感謝致します。 上記でソースを書いた所、怒られるんですが・・・。 Error エラー:型 'DownloadProgressChanedEventArgs' が定義されていません。 エラー:クラスの明示的なインスタンスを指定しないで、 共有メソッドまたは共有メンバ初期化子内からクラスのインスタンス メンバへ参照することはできません。 上記の2番目エラーは、 Label1.text = String.Format("{0}%", n) ProgressBar1.Value = n 名前は同じなのにラベルとプログレスバーの文字を訂正しろと怒られ 分かりません・・。 どうすれば宜しいのでしょうか?