tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルブラウザの進歩状況について
記事No6387
投稿日: 2007/10/02(Tue) 17:35
投稿者半端小僧
こんにちは。

VB2005のブラウザを読み込む際のプログレスバーに進歩状況を表示する質問です。

Browser1.Navigate("URL")

とすればURLの情報をブラウザへ読み込めると言うことまでは
何とか出来ましたが、この読み込み中の進歩状況を表示する
のが全く分かりません。 検索などもしましたが、例題がなく
困っております。 初心者なので検索のキーワードが違うかも
知れませんけど、このような事は初心者でも出来るのでしょうか?

出来ればサンプルなどの詳細ありのサイトなどがあれば教えて
下さい。 よろしくお願いします。

# 検索キーワードは「VB 2005 進歩状況」や「VB 2005 進行状況」で検索しました。

[ツリー表示へ]
タイトルRe: ブラウザの進歩状況について
記事No6388
投稿日: 2007/10/02(Tue) 18:58
投稿者Hongliang
ProgressChanged イベントをどうぞ。

[ツリー表示へ]
タイトルRe^2: ブラウザの進歩状況について
記事No6389
投稿日: 2007/10/02(Tue) 19:37
投稿者半端小僧
こんばんは。

> ProgressChanged イベントをどうぞ。
このイベントで処理が行われそうなのは予想出来てました。
しかし、実際に処理を書けない事から質問させて頂きました。


Progress1.Maximum = e.MaximumProgress.ToString
Progress1.Value = e.CurrentProgress.ToString


色々と試行錯誤してみましたけど、このような記述であっているのでしょうか?
それとも、途中になんらかの処理が必要なのでしょうか?

[ツリー表示へ]
タイトルRe^3: ブラウザの進歩状況について
記事No6391
投稿日: 2007/10/03(Wed) 10:09
投稿者Hongliang
> > ProgressChanged イベントをどうぞ。
> このイベントで処理が行われそうなのは予想出来てました。
> しかし、実際に処理を書けない事から質問させて頂きました。

始めからそう書いておいていただけると、余計な問答が減ってお互いハッピーです。
ところで、処理を書けないってのは、記述の仕方が分からないって意味でいいんですかね?

> Progress1.Maximum = e.MaximumProgress.ToString
> Progress1.Value = e.CurrentProgress.ToString
>
> 色々と試行錯誤してみましたけど、このような記述であっているのでしょうか?

// VB で Option Explicit Off だとこれ大丈夫なんだっけ?
もう少し型を意識しましょう。
WebBrowserProgressChangedEventArgs.MaximumProgress を調べれば、
このプロパティが Long 型であるのが分かります。
また ProgressBar.Maximum の方は Integer です。
取り敢えず、どちらも数値なのですからわざわざ文字列を介させる必要はありません。
ただ扱える範囲が異なるので、単純に型変換するわけにも行きません。
MaximumProgress プロパティは Maximum プロパティが扱える最大値よりも
大きい値を返してくる可能性があります。CurrentProgress と Value も同様です。
// 現実的ではないでしょうけど。
それをどうするかは考え方次第です。
例えば、ProgressBar の Maximum は固定値にして、
CurrentProgress と MaximumProgress の割合を Value に設定すると言うことも考えられます。

ヘルプには記述がありませんが、MaximumProgress については
常に 0 を返される可能性があります。
// 相手サーバが Content-Length ヘッダを返さない場合。
除算する場合、気をつけたほうがいいでしょう。

> それとも、途中になんらかの処理が必要なのでしょうか?

どんなのを想定されていますか?

[ツリー表示へ]
タイトル難しいですね^^;
記事No6392
投稿日: 2007/10/03(Wed) 10:21
投稿者半端小僧
こんにちは。

取り扱いになれてないせいか、初心者にとって難しいですね。

Progress1.Maximum = e.MaximumProgress.ToString
Progress1.Value = e.CurrentProgress.ToString
↑を↓に変えてみました。
Progress1.Maximum = CInt(e.MaximumProgress)
Progress1.Value = CInt(e.CurrentProgress)

>> それとも、途中になんらかの処理が必要なのでしょうか?

> どんなのを想定されていますか?
ループによる処理などの事を書いてました。
e.MaximumProgress を取得して進歩する数だけループするのかと・・・。
しかし、難しいですね。(汗

やはり初心者にはまだまだ早い気がしてきました。

[ツリー表示へ]