Beklager at mit svar kommer så sent, men jeg har ikke haft så meget tid :) Men nu har jeg i hvert fald lavet noget som virker.
Først laver jeg en klasse som hedder UrlTime, som skal indeholde information om Url'er og hvor lang tid Url'erne skal være åbne. Jeg har givet klassen 2 properties; Url og Duration
Public Class UrlTime
Public Sub New(ByVal url As String, ByVal duration As Integer)
Me.Duration = duration
Me.Url = url
End Sub
Private _url As String
Public Property Url() As String
Get
Return _url
End Get
Set(ByVal value As String)
_url = value
End Set
End Property
Private _duration As Integer
Public Property Duration() As Integer
Get
Return _duration
End Get
Set(ByVal value As Integer)
_duration = value
End Set
End Property
End Class
Inde i koden til formen har jeg lavet en liste af UrlTime objekter. Denne liste fylder jeg op i Form1_Load metoden, og så sætter jeg i gang timeren. I timerens Tick metode, sætter jeg Interval på timeren, og sætter Url'en i browseren. Her er koden fra formen:
Imports System.Collections.Generic
Imports System.Xml
Public Class Form1
Private urlTimeIndex As Integer
Private _urlTimes As List(Of UrlTime)
Public Property UrlTimes() As List(Of UrlTime)
Get
Return _urlTimes
End Get
Set(ByVal value As List(Of UrlTime))
_urlTimes = value
End Set
End Property
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim xmld As XmlDocument
Dim xnodelist As XmlNodeList
xmld = New XmlDocument()
xmld.Load("c:\sampleXML.xml")
xnodelist = xmld.SelectNodes("/root/webpage")
Me.UrlTimes = New List(Of UrlTime)
For Each node As XmlNode In xnodelist
Dim urlTime As New UrlTime(node.ChildNodes.Item(0).InnerText, Integer.Parse(node.ChildNodes.Item(1).InnerText))
Me.UrlTimes.Add(urlTime)
Next
'Følgende linjer er til test.
'Me.UrlTimes.Add(New UrlTime("
http://www.google.com", 5000))
'Me.UrlTimes.Add(New UrlTime("
http://www.bing.com", 2000))
'Me.UrlTimes.Add(New UrlTime("
http://eksperten.dk", 8000))
Me.urlTimeIndex = Integer.MaxValue
Me.Timer1.Interval = 1
Me.Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Me.urlTimeIndex >= Me.UrlTimes.Count Then
Me.urlTimeIndex = 0
End If
Dim current = Me.UrlTimes(Me.urlTimeIndex)
Me.Timer1.Interval = current.Duration
Me.WebBrowser1.Url = New Uri(current.Url)
Me.urlTimeIndex = Me.urlTimeIndex + 1
End Sub
End Class