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()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.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
Però appena lo provo, il primo link lo fa correttamente in quando ho impostato che all'avvio abbia questo codice:
cioè apre una nuova scheda su "google", ma appena cerca di aprire la seconda si ferma e mi dà: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
"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!

Rispondi quotando
