VB.NETでTimerを使いたいです。検索して使い方を調べてみたのですが、いまいちわかりませんでした。私のやりたいことは、フォーム上のWebBrowserが2秒経ってもロードが完了しなければリロードするということです。サンプルのコードを書いて頂けるとありがたいです。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/12/16 19:55:45
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tsukasa57 No.1

回答回数110ベストアンサー獲得回数20

ポイント60pt

適当に書いてみたサンプル。Form に WebBrowser、Timer、Button、Label を貼り付けるという前提のコード。ボタンをクリックすると Timer を起動してから Web にアクセスする。Timer は 2 秒ごとに呼び出され、WebBrowser の状態をチェックする。もし、Complete していなければ Reload(Refresh) する。もし、Complete していれば、Timer を停止する。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Interval = 2000
        Timer1.Start()
        WebBrowser1.Url = New Uri("http://www.hatena.ne.jp/")
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Then
            Label1.Text = "refresh"
            WebBrowser1.Refresh()
        Else
            Label1.Text = "stop"
            Timer1.Stop()
        End If
    End Sub
End Class

こんな感じ?

あってるか確認してください。

id:Gakuen

ありがとうございます。

思っていたように動かすことができました。

2008/12/16 19:55:33
  • id:Gakuen
    <追記>
    アクセスを開始した時点でTimerをスタートさせて、ロード完了した時点でTimerを止める。もし、2秒以上経ってもロードが完了しないならばリロード。タイマーをリセット。タイマーをもう一度スタート。

    こういった流れです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません