2016-08-11 3 views
0
dim web1 as string 
dim web2 as string 
dim i as int32 

web1 = "www.webaddress1.com" 
web2 = "www.webaddress2.com" 
web3 = "www.webaddress3.com" 

i = 1 

while i < 100 

webbrowser1.navagate(web1) 

i = i + 1 

end while 

У меня есть несколько веб-сайтов, не уверен, как получить веб-сайт, чтобы изменить в начале каждого цикла, так что она будет проходить через web1 web2 web3 и т.д.Loop с Webbrowser VB.Net

+1

Для цикла вы должны иметь что-то, что может быть итерированным ... как коллекция, список, массив. – Plutonix

ответ

1

Прямо сейчас , все, что делает ваш код, происходит на том же сайте 99 раз. Вы не передаете переменную сайта ничего нового. Как Plutonix сказал, что вам нужно перебрать коллекцию, которая будет выглядеть примерно так:

Dim lstWebsites As New List(Of String) From {"www.webaddress1.com", _ 
               "www.webaddress2.com", _ 
               "www.webaddress3.com"} 
    For Each website As String In lstWebsites 
     webbrowser1.navigate(New Uri(website)) 
    Next 

Будьте осторожны, петля как это происходит очень быстро выполнить, поэтому в зависимости от того, что вы ударяете эти ссылки для, вы можете пространство их с помощью таймера или выполнить каждый после события DocumentCompleted


EDIT-ответ на комментарий: Если бы я делал это в моем проекте, я предпочел бы, используя DocumentCompleted событие, а не таймер, таким образом процесс занимает как можно меньше времени для завершения работы, и каждый посещаемый адрес получает все ti мне нужно закончить загрузку. Тем не менее, в принципе, это будет выглядеть примерно так:

Public Class Form1 
    Private Property lstWebsites As List(Of String) 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     lstWebsites = New List(Of String) From {"www.webaddress1.com", _ 
               "www.webaddress2.com", _ 
               "www.webaddress3.com"} 
     NavigateNext() 
    End Sub 

    Private Sub NavigateNext() 
     If lstWebsites IsNot Nothing AndAlso lstWebsites.Count > 0 Then 
      WebBrowser1.Navigate(New Uri(Me.lstWebsites(0))) 
      lstWebsites.RemoveAt(0) 
     Else 
      Me.Close() 
     End If 
    End Sub 

    Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted 
     NavigateNext() 
    End Sub 
End Class 
+0

Тусклый я Как Int32 Dim lstWebsites Как Новый List (Of String) Из { "www.site1.com", "www.site2.com"} г = 0 В то время как я <2 WebBrowser1.Navigate (lstWebsites .Item (i)) i = i + 1 End В то время как, как я их выставляю таймером – deephect

+0

, я по-другому поступил с моим кодом, но вы получили меня там, спасибо – deephect

-1

Если вы настаиваете на не используя список (как это soohoonigan предложенный), потому что вы не узнали их еще, вы всегда можете просто позвонить функция навигации три раза. Имейте в виду, что решение списка является более правильным, я просто предоставляю альтернативу.

dim web1 as string 
dim web2 as string 
dim i as int32 

web1 = "www.webaddress1.com" 
web2 = "www.webaddress2.com" 
web3 = "www.webaddress3.com" 

i = 1 

while i < 100 

    webbrowser1.navigate(web1) 
    webbrowser1.navigate(web2) 
    webbrowser1.navigate(web3) 

    i = i + 3 

end while 

Отказ от ответственности: Непроверенный код