Salve ragazzi,
sto creando un programma che ogni tot secondi apre una nuova scheda (del tabcontrol) e naviga su un indirizzo che ho precedentemente impostato.
Ho creato un nuovo therd così da alleggerire il tutto:
codice:
dim inte as integer=0
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Control.CheckForIllegalCrossThreadCalls = False
Dim MyThread As New Thread(AddressOf avvio)
MyThread.Start()
codice:
Private Sub avvio()
Do
intervallo = numerocasuale.Next(60000, 180000)
CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(ListBox1.SelectedItem)
With ListBox1
If .SelectedIndex < 0 Or .SelectedIndex = .Items.Count - 1 Then
TabControl1.TabPages.Clear()
inte = 0
ListBox1.SelectedIndex = 0
Else
.SelectedIndex += 1
Threading.Thread.Sleep(intervallo)
Dim Browser As New WebBrowser
TabControl1.TabPages.Add("Nuova Scheda")
Browser.Name = "Web Browser"
Browser.Dock = DockStyle.Fill
TabControl1.SelectedTab.Controls.Add(Browser)
AddHandler Browser.DocumentCompleted, AddressOf Done
inte = inte + 1
CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate("www.google.it")
CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).ScriptErrorsSuppressed = True
End If
End With
Loop
In sostanza vorrei che ogni tot minuti, apre una nuova scheda-->attivi la scheda appena aperta (lasciando quella vecchia aperta, ma non attiva)---> navigare sul link.
Però appena lo provo, il primo link lo fa correttamente in quando ho impostato che all'avvio abbia questo codice:
codice:
Dim Browser As New WebBrowser
TabControl1.TabPages.Add("Nuova Scheda")
Browser.Name = "Web Browser"
Browser.Dock = DockStyle.Fill
TabControl1.SelectedTab.Controls.Add(Browser)
AddHandler Browser.DocumentCompleted, AddressOf Done
inte = inte + 1
CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate("www.google.it")
CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).ScriptErrorsSuppressed = True
cioè apre una nuova scheda su "google", ma appena cerca di aprire la seconda si ferma e mi dà:
"Impossibile creare un'istanza del controllo ActiveX '8856f961-340a-11d0-a96b-00c04fd705a2' perché il thread corrente non è un apartment a thread singolo."
Come mai? come posso fare per risolvere? Grazie mille in anticipo!