• 締切済み

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://...を上記のソースと同じ様に 記述したい場合、どうすれば良いですか? どなたか教えて頂けませんか?

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

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について調べて見ましょう

GurscIndex
質問者

補足

ソースを記述して頂き、大変感謝致します。 上記でソースを書いた所、怒られるんですが・・・。 Error エラー:型 'DownloadProgressChanedEventArgs' が定義されていません。 エラー:クラスの明示的なインスタンスを指定しないで、 共有メソッドまたは共有メンバ初期化子内からクラスのインスタンス メンバへ参照することはできません。 上記の2番目エラーは、 Label1.text = String.Format("{0}%", n) ProgressBar1.Value = n 名前は同じなのにラベルとプログレスバーの文字を訂正しろと怒られ 分かりません・・。 どうすれば宜しいのでしょうか?

関連するQ&A

  • c# なぜ警告が出るのか、教えて下さい

    http://dobon.net/vb/dotnet/internet/downloadfile.html の「同期的にファイルをダウンロードし保存する」の例文、 System.Net.WebClient wc = new System.Net.WebClient(); wc.DownloadFile(jczurl, @"c:\test.xml"); wc.Dispose(); を書くと、 1行目「System.Net.WebClient wc」の「wc」は「';' が必要です。」と怒られ、 2行目「jczurl, @"c:\test.xml"」の@の次の「"」は「無効な文字です。」と怒られてしまいます。 無知ですみませんが、理由を教えて下さい。 宜しくお願い致します。

  • ProgressBarが0%から動きません

    あるアプリケーション内で、時間のかかる処理の間、進行状況を表すためにJProgressBarを使用したのですが、処理の間、JProgressBarは動かず0%のままで、時間のかかる処理が終了すると同時に、JProgressBarは100%になり終了します。これでは、進行状況が報告されず無意味になってしまうのですが、どうやったら進行状況が表示されるのでしょうか? 分かる方御教授お願いします。 このリンク先のプログラムをJProgressBar表示に利用しています。 http://wisdom.sakura.ne.jp/system/java/swing/swing27.html また、ソースは、 ... PThread pt = new PThread(); pt.start(); /* 長い処理の部分 */ finishExe = true; // Thredに処理終了を告げる ... class PThread extends Thread{  public void run(){   try{    ActionProgressBar jb = new ActionProgressBar();      while(!finishExe){ /* 長い処理が終わるまで繰り返し */       jb.progressBar.paintImmediately(jb.progressBar.getVisibleRect());       super.sleep(1000);      }      jb.stop(); /* 処理終了 */      jb.dispose();      finishExe = false;    }    catch(Exception err){    }   } }

    • ベストアンサー
    • Java
  • サーバーにアップロードしたい

    このサイトに http://dobon.net/vb/dotnet/internet/ftpwebclient.html WebClientを使ってFTPサーバーからファイルをダウンロード、アップロードするというのがあります これを参考に実行して見ますと、ダウンロードはうまくいくんですが、アップロードがうまくいきません。 そのプログラムは 'WebClientオブジェクトを作成 Dim wc As New System.Net.WebClient() 'ログインユーザー名とパスワードを指定 wc.Credentials = New System.Net.NetworkCredential("username", "password") 'FTPサーバーにアップロード wc.UploadFile("ftp://localhost/test.txt", "C:\test.txt") '解放する wc.Dispose( と、非常にシンプルです。なんでうまくいかないんでしょうか?

  • ファイルのダウンドードでエラー

    ファイルのダウンドードでエラー あるサイトを参考にファイルをダウンドードするプログラムを組んだのですが、 「リモート サーバーがエラーを返しました: (401) 許可されていません 」 のエラーが出てしまいます。 調べてはいますが、どう直せばいいのか分からない状況です。 どなたか教えてください。 以下ソース(C#です) ------------------------------------------------------------------ System.Net.WebClient wc = new System.Net.WebClient(); string uri = "http://192.168.0.xx/TestService/Excel/pick.xls"; string file = "pick.xls"; wc.DownloadFile(uri,file); wc.Dispose(); ------------------------------------------------------------------ エラー内容 ------------------------------------------------------------------ リモート サーバーがエラーを返しました: (401) 許可されていません 説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。 例外の詳細: System.Net.WebException: リモート サーバーがエラーを返しました: (401) 許可されていません ------------------------------------------------------------------

  • DownloadFileを連続使用するとエラーが?

    ごく一般的な方法でイメージファイルをダウンロードしています WebClient wc1 = new System.Net.WebClient(); try { wc1.DownloadFile(@"http://MySite.web.fc2.com/MyImage.jpg",@"c:\MyImage.jpg"); } catch { MessageBox.Show("DownLoad エラー"); } finally { wc1.Dispose(); } 最初の2~3回は正常に動作します でもその後はエラーが連続してしまいます 3分程度の時間間隔を置くと正常に戻ります しかしまたエラーが連続する状態に戻ってしまいます 上記のサンプレではFC2を使用していますがOCNでも同様です 疑問? (1)そもそもDownloadFileは連続使用してはならないものなのでしょうか? でもそんな注意書きは何処にもありません (2)何らかのエラー回避法があれば教えてください お願い致します、ワンワンわぁわぁ~わぁ~ん~!!!

  • ファイルのダウンロード時のエラーの処理について

    Dim wc As New System.Net.WebClient wc.DownloadFile("http://oshiete1.goo.ne.jp/images_goo/goo.gif", "C:\goo.gif") というコードでファイルをダウンロードする場合に ファイルが存在すれば良いのですが、 指定の場所に指定のファイルがなかった場合や 指定したサーバー自体が見当たらない場合や、 返答がなく異常に時間がかかった場合の処理をしたいです。 on Error goto を使うとエラー番号で[5]が出るのですが、 エラールーチンを設けないとデバッグのメッセージで サーバー関係のエラーのメッセージ(404とか)が表示されるのですが、 そのような具体的なエラー番号やエラーの状態をプログラム内で 得るにはどうしたら出来るでしょうか。 何か良い方法がありましたら、ご教示頂きたく、お願い致します。m(__)m

  • C#でDownloadFileAsync

    最近C#のプログラミングの勉強を始めました。 ファイルをWEB上からダウンロードする方法についての質問です。 以下のコードを使って、HTMLファイルをDLすることは問題なくできました。 System.Net.WebClient wc = new System.Net.WebClient(); Uri url = new Uri("http://okwave.jp/"); string filename = "tempfile.html"; wc.DownloadFile(url, filename); しかし、以下のように非同期のメソッドにした場合、うまくファイルがDLされません。 System.Net.WebClient wc = new System.Net.WebClient(); Uri url = new Uri("http://okwave.jp/"); string filename = "tempfile.html"; wc.DownloadFileAsync(url, filename); なおDLされないというのは、コンパイルも通るし例外も出ないし tempfile.htmlというファイル自体は作成されるのですが、 サイズが0KBの空っぽのものになってしまうという意味です。 後半のソースも、どこかのサイトからほぼコピペしてきたものなのですが、 何か重大な見逃しをしているのか、設定が悪いのか、 いろいろネットをあたってもそれらしい解決策は得られませんでした。 .Netにあまりなじみがないのでくだらないミスをしているのかもしれませんが、 行き詰ってしまいましたので皆様のお知恵をお借りできればと思います。 よろしくお願いします。 環境 Win8 64bit Visual Studio Express 2012 for Win Desktop ↑特に設定いじってなし

  • VB2005で「ファイルのダウンロード」のダイアログをVBで操作したい。

    初歩的な質問だとは思いますが、どうか回答お願いします。 VB2005でwebからファイルを自動でダウンロードするアプリ を作ろうとしています。 http://www.hogehoge.com/hogehoge.jpg からのダウンロードの仕方は Dim wc As New System.Net.WebClient() wc.DownloadFile("http://www.hogehoge.com/hogehoge.jpg", "c:\hogehoge.gif") でうまくいくのですが、 http://www.hoge.com/code=xxxx/download のようなURLの場合は上記の方法ではうまくいきませんでした。 そこで webbrowser1.navigate("http://www.hoge.com/code=xxxx/download ") を実行後「ファイルのオダウンロード」のダイアログが 表示されるので、VBからそのダイアログを操作して ファイルを保存しようと思いましたが、やり方が全然思いつきませんでした(T△T) どのようにすればよいかご教授ください。 よろしくお願いしますm(_ _)m

  • BackgroundWorkerについて(C#)

    C#でBackgroundWorkerを使ったプログラムを試しています。 Windows Form上にButtonとProgressBarを設置して以下のプログラムを 動作させると、プログレスバーが終了するまえに”終了”が出てしまいますが これはどうしてでしょうか? よろしくお願いいたします。 using System; using System.ComponentModel; using System.Threading; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { button1.Enabled = false; Random rand = new Random(); BackgroundWorker bgWorker = new BackgroundWorker(); bgWorker.DoWork += ((sender2, e2) => { for (int i = 0; i < 10; i++) { Thread.Sleep((int)(rand.NextDouble() * 500)); bgWorker.ReportProgress((i + 1) * 10); } }); bgWorker.RunWorkerCompleted += ((sender2, e2) => { button1.Enabled = true; bgWorker.Dispose(); MessageBox.Show("終了"); }); bgWorker.ProgressChanged += ((sender2, e2) => { progressBar1.Value = e2.ProgressPercentage; }); bgWorker.WorkerReportsProgress = true; bgWorker.RunWorkerAsync(); } } }

  • 電子メール収集ロボット対策にjsファイル使用

    お世話になっております。 画像をクリックするとメーラーが立ち上がるようにしたいのですが、メールアドレスを収集されるのを避けたく、javascriptで呼び出す方法をとっています。 jsソース(ファイル名:mail.js) document.write("<a href='mailto:test@com'><img src='image/button.gif'></a>"); htmlソース <script src="mail.js"></script> 上記で画像をクリックするとメーラーが立ち上がるのはうまくいっています。が、さらにこの画像にマウスオーバー効果をつけたいのです。 そんなことは可能でしょうか? 通常の画像にリンク+マウスオーバー効果をつけるときは、 jsソース function swapimage(btnObj,sURL) { btnObj.src = sURL } htmlソース <a href="リンク先.html"><img src="image/button2.gif" onmouseover="swapimage(this,'image/button3.gif')" onmouseout="swapimage(this,'image/button2.gif')"/></a> としています。 これと同じ効果を実現させる方法がお分かりになる方、いらっしゃいましたらお知恵をかしていただきたいです。基礎的な知識しかなく、申し訳ありません。 どうぞよろしくお願い致します。

専門家に質問してみよう