C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 58 を表示中)
■32872 / )  Re[4]: PictureBoxでネット上の画像表示時の不具合
□投稿者/ akkima (2回)-(2009/02/17(Tue) 10:20:35)
2009/02/17(Tue) 10:57:08 編集(投稿者)
2009/02/17(Tue) 10:24:05 編集(投稿者)
2009/02/17(Tue) 10:22:25 編集(投稿者)
2009/02/17(Tue) 10:21:02 編集(投稿者)
2009/02/17(Tue) 10:20:56 編集(投稿者)

返信ありがとうございます。

>出水さん
再現しないとのことで、私もボタンを押すと
picturebox1.LoadAsync("http://xxx.co.jp/image.jpg")
だけを実行するプロジェクトを作ってためしたところ、たしかに再現しませんでした。

ただ、どういう条件でなるのかいまひとつ分かりませんでしたが、
Firefox3でhttp://xxx.co.jp/image.jpgにアクセスし、FTPで画像を変更後、Firefoxの更新ボタンを押しても
Firefoxで画像が切り替わらなくなることがありました。その場合VBでも画像が切り替わりませんでした。

Firefox3でCtrl+F5で更新させると変更後の画像がきちんと表示され、VBでも画像が切り替わっていました。
やっぱりブラウザのキャッシュなのかもしれません・・・。

>よねKENさん
>PictureBox.LoadAsyncメソッドのソースを読むとLoadAsyncが処理中の場合は、
>何もせずにreturnするようです。
私のソースではpicturebox1.LoadCompletedイベントでロードが完了するまでボタンのenable=falseにしています。
だから、たぶんLoadAsyncメソッドは完了しているはずだと思います。

>倉田 有大さん
LoadProgressChangedイベントでロード進行状況
LoadCompletedイベントでロード完了が取得できますよ。

-----
一応解決したっぽい?ので報告いたします。
とりあえず全てのブラウザのキャッシュやらセッションやらを削除する。

picturebox1.LoadAsync("http://xxx.co.jp/image.jpg?" & Now.Year & Now.Month & Now.Day & Now.Hour & Now.Minute & Now.Second)
と最後に"?日付"を加えて常にアドレスを変えるようにしました。
これはhttp://support.adobe.co.jp/faq/faq/qadoc.sv?228621+002を参考にしました。

ブラウザでhttp://xxx.co.jp/image.jpgにアクセスしない。

これで過去の画像が表示されるという現象は発生しなくなりました。
"?a"が有効なのかどうか分かりません。
というか結局ブラウザのキャッシュが原因だったのかもしれません。(その場合は申し訳ありません。)

みなさんどうもありがとうございました。
-----
解決済み
返信 編集キー/


管理者用

- Child Tree -