2014-02-23 33 views
0

我有列表框中存儲的鏈接列表。我想要一個定時器控件每隔4秒加載一個鏈接,一旦它到達列表的末尾,我希望定時器停止。我試圖用下面的代碼來實現這一點,它只是加載第一個鏈接。有人能指出我的錯誤嗎?提前致謝!VB.NET從列表框中選擇鏈接並在瀏覽器控件中瀏覽到它

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 

    Dim counter As Integer = counter + 1 
    If counter > ListBox2.Items.Count Then 
     counter = 0 
     Timer1.Enabled = False 
    Else 
     Dim i As Integer 
     For i = 0 To ListBox2.Items.Count - 1 
      WebBrowser1.Navigate(ListBox2.Items(i)) 
     Next 
    End If 

End Sub 

回答

0

你需要在類級別,而不是你的節拍處理程序中聲明你的counter變量,否則它的值總是重新初始化到1

所以換句話說,oustide處理程序中定義它。

此外,您不得在循環處理程序中循環列表框的全部內容。

這裏有一個更好的版本:

Public Class Form1 

    Private counter As Integer = 0 

    ... 

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 

     If counter > ListBox2.Items.Count - 1 Then 
      counter = 0 
      Timer1.Enabled = False 
     Else 
      WebBrowser1.Navigate(ListBox2.Items(counter)) 
     End If 
     'Increment at the end to get element(0) 
     counter = counter + 1 

    End Sub 
End Class 

乾杯

+0

這是真的,但這裏不是唯一的問題。整個循環在tick事件中。 – peterG

+0

唉唉......真..讓我更新此 –

+0

@mrlucmorin正確的是'如果計數器> ListBox2.Items.Count - 1 Then' –