Anzeige

Html Seiten nacheinander mit dem Webbrowser Control anzeigen


chaosII

Grünschnabel
#1
Hallo,

habe wieder ein kleines Problem. Und zwar möchte ich mehrere HTML Seiten in meinem Programm nacheinander im Webbrwoser Control anzeigen lasen.
Also zb. http://www.google.de aufrufen, dann die Seite komplett laden und dann die nächste Url zb. http://www.yahoo.de

Hab diesen Code im Internet gefunden,
dieser sollte wohl bewirken dass die HTML Seite erst geladen wird und dann die nächste.
Code:
While ExplorerForm.Busy = False
 
'Keine Aktion
 
EndWhile

Ich habe den Code jetzt so umgeschrieben:
Code:
ExplorerForm.Navigate2(lstUrls.SelectedItem)
 
While ExplorerForm.Busy = False
 
'Keine Aktion
 
EndWhile
 
With ExplorerForm
 
ExplorerForm.Document.Forms(0).EntryName.Value = txtName.Text
 
ExplorerForm.Document.Forms(0).EntryEmail.Value = txtEmail.Text
 
ExplorerForm.Document.Forms(0).EntryHomepage.Value = txtHomepage.Text
 
ExplorerForm.Document.Forms(0).EntryKommentar.Value = txtKommentar.Text
 
EndWith
nur leider bekomm ich immer diese Meldung:

Code:
 Eine nicht behandelte Ausnahme des Typs 'System.NullReferenceException' ist in microsoft.visualbasic.dll aufgetreten.
Zusätzliche Informationen: Objektvariable oder With-Blockvariable wurde nicht festgelegt.
Ich glaube es liegt daran dass die Seite nicht vollständig geladen wird. Nur wie könnte ich das Problem lösen?

Falls mir jemand einen Tipp geben könnte wäre ich euch sehr dankbar! Versuche das jetzt schon seit 3 Tagen zu lösen, aber leider ohne Erfolg :confused:
 
#2
Hallo bin ganz neu hier und habe da ein problem.

Ich will nacheinander webseiten im Webbrowser Control anzeigen lassen.

Das ganze soll so wirken wie eine Dia show.

Das ist so zimlich mein erstes VB.net prog habe vorher nur mit VS 6 gearbeitet.

Das Problem ist: wenn ich eine Seite aufrufe, dann klappt das wunderbar (egal ob beim laden des Formulars oder beim Starten über einen Button). Wenn ich aber zwei Links hintereinander laden will und die von einander trenne mit einem

"System.Threading.Thread.Sleep(2000)"

Dann funktioniert das auch theoretisch, nur in der praxis ist das problem, das der Browser mir nix anzeigt. Erst nachdem er alle pages durchlaufen hat zeigt er mir die letzte page in der liste an.

wenn ich vor dem Threading eine If abfrage setzte ob der browser noch lädt sprich so:

If AxWebBrowser1.Busy = True Then
System.Threading.Thread.Sleep(2000)
End If

dann habe ich das selbe problem.

Wäre dankbar für jede Hilfe.
 
#3
Hallo alle zusammen habe meinen fehler gefunden für die jenigen die es interesiert hier mein code:

Imports System.IO

Public Class Form1
Dim urlad(50) As String
Dim zähler As Integer = 1
Dim a As Integer = 1
Dim b As Integer = 1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim lesen As StreamReader

lesen = New StreamReader("c:\test.txt")
Do
urlad(a) = lesen.ReadLine()
a += 1
Loop Until lesen.EndOfStream

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
AxWebBrowser1.Width = (Me.Width - 10)
AxWebBrowser1.Height = (Me.Height - 10)
End Sub


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Timer1.Interval = 100
Timer1.Enabled = True
Button2.Visible = False
AxWebBrowser1.CtlTop = 5
Timer2.Interval = 10000
Timer2.Enabled = True
End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
AxWebBrowser1.Navigate(urlad(zähler))
zähler = zähler + 1
If zähler > a - 1 Then
zähler = 1
End If
End Sub
End Class

Das Prog macht folgendes: es lässt eine endlosschleife in einem axWebbrowser abllaufen. die webseiten werden über eine textdatei namens "test.txt" die auf "c:\" liegt eingespielt.
Insgesammt werden 2 timer benötigt, einer um die diashow ablaufen zu lassen und einer um den browser der größe des Formulars anzupassen. Der Button ist nur für den start der Dia show zuständig, nachdem erbetätigt wurde wird er unsichtbar. Naja probiert es aus.

P.S.: Ich bitte meinen schlechten Programmier stil zu entschuldigen.
 
Anzeige
Anzeige