Simpele Webbrowser maken (VB.NET)
1. Inleiding
2. Beginnen
3. Layout
4. Code
5. Uitleg
6. Nawoord
1. Inleiding
Hallo!
In deze tutorial gaan we leren hoe we met Visual Basic.NET een simpele webbrowser maken.
Voorbeeld:
Een kleine kennis van Forms is nodig, deze kan je opdoen in de prima tutorial van Titjes.
top
2. Beginnen
Om te beginnen openen we een nieuw project.
Klik nu op de form en pas onderstaande eigenschappen aan:
Name: Form1
Size: 851; 809 (maakt weinig uit, aangezien we hem automatisch laten maximaliseren..)
Text: My Webbrowser v1.0
WindowState: Maximized
top
3. Layout
Nu gaan we de layout van de form onder handen nemen.
Selecteer in de toolbox de optie 'WebBrowser', zoals hieronder:
Eigenschappen:
Name: WebBrowser1
Anchor: Top, Bottom, Left, Right
URL: http://www.google.be (de begin url, deze mag jij natuurlijk zelf kiezen)
Anchors zijn hier nodig zodat wanneer de form gemaximaliseerd is, dat de verhoudingen juist blijven.
Nu voegen we de benodigde knoppen en tekstvelden aan, zoals hieronder:
Noem ze opeenvolgende zo: knop_home, knop_refresh, knop_vorige, knop_volgende, veld_adres en knop_go.
Zorg hier er ook weer voor dat de anchors juist zijn:
knop_home: Top, left
knop_refresh: Top, left
knop_vorige: Top, left
knop_volgende: Top, left
veld_adres: Top, left, right
knop_go: Top, Right
Voor knop 3 en 4 doen we nog iets extra, aangezien je nog niet kan teruggaan, of vooruit gaan, zetten we Enabled op False.
We voegen ook onderaan een statusbar toe (StatusStrip).
Voeg in die statusstrip ook nog een ToolStripStatusLabel toe(Eigenschappen van de StatusStrip, items), met als TextAlign 'MiddleLeft', ToolStripStatusLabel1 genaamd.
top
4. Code
Nu gaan we de Visual Basic code aanmaken, dubbelklik op de form en vervang wat er eventueel al staat door onderstaande code:
Public Class Form1
Private Sub knop_home_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knop_home.Click
WebBrowser1.GoHome() ' Home knop.
End Sub
Private Sub knop_refresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knop_refresh.Click
WebBrowser1.Refresh() ' Refresh knop.
End Sub
Private Sub knop_vorige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knop_vorige.Click
WebBrowser1.GoBack() ' Vorige knop.
End Sub
Private Sub knop_volgende_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knop_volgende.Click
WebBrowser1.GoForward() ' Volgende knop.
End Sub
Private Sub knop_go_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knop_go.Click
Dim gototext As String = veld_adres.Text ' Navigeer naar ingevoerde pagina
If gototext <> "" And gototext <> "http://" And gototext.StartsWith("http://") = True Or gototext.StartsWith("https://") = True Or gototext.StartsWith("ftp://") = True Then ' Spreekt voor zich..
Dim uritext As New Uri(gototext)
WebBrowser1.Navigate(uritext)
End If
End Sub
Private Sub WebBrowser1_CanGoBackChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.CanGoBackChanged
If WebBrowser1.CanGoBack = False Then ' Als je niet terug kan gaan, de knop < disablen
knop_vorige.Enabled = False
Else
knop_vorige.Enabled = True ' Tegenovergestelde
End If
End Sub
Private Sub WebBrowser1_CanGoForwardChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.CanGoForwardChanged
If WebBrowser1.CanGoForward = False Then ' Als je niet verder kan, de knop > disablen
knop_volgende.Enabled = False
Else
knop_volgende.Enabled = True ' Tegenovergestelde
End If
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim currenturl As String = WebBrowser1.Url.ToString()
veld_adres.Text = currenturl ' De veld_adres met de URL in updaten bij het laden van de browser.
End Sub
Private Sub WebBrowser1_DocumentTitleChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.DocumentTitleChanged
Dim title As String = WebBrowser1.DocumentTitle()
Me.Text = "My Webbrowser v1.0 - " & title ' De titel updaten.
End Sub
Private Sub WebBrowser1_Navigated(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
Dim currenturl As String = WebBrowser1.Url.ToString()
veld_adres.Text = currenturl ' De veld_adres met de URL in updaten.
End Sub
Private Sub WebBrowser1_StatusTextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.StatusTextChanged
Dim statustext As String = WebBrowser1.StatusText
ToolStripStatusLabel1.Text = statustext ' Statusbar updaten.
End Sub
End Class
top
5. Uitleg
Private Sub knop_home_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knop_home.Click
WebBrowser1.GoHome() ' Home knop.
End Sub
Private Sub knop_refresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knop_refresh.Click
WebBrowser1.Refresh() ' Refresh knop.
End Sub
Private Sub knop_vorige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knop_vorige.Click
WebBrowser1.GoBack() ' Vorige knop.
End Sub
Private Sub knop_volgende_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knop_volgende.Click
WebBrowser1.GoForward() ' Volgende knop.
End Sub
Wanneer er op de 'Home'-knop wordt gedrukt, navigeren we naar de ingestelde startpagina van je browser met behulp van .GoHome().
Wanneer er op de 'Refresh'-knop wordt gedrukt, refreshen we de browser met behulp van .Refresh().
Wanneer er op de 'Terug'-knop wordt gedrukt, navigeren we naar de vorige pagina met behulp van .GoBack().
Wanneer er op de 'Volgende'-knop wordt gedrukt, navigeren we naar de volgende pagina met behulp van .GoForward().
Private Sub knop_go_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knop_go.Click
Dim gototext As String = veld_adres.Text ' Navigeer naar ingevoerde pagina
If gototext <> "" And gototext <> "http://" And gototext.StartsWith("http://") = True Or gototext.StartsWith("https://") = True Or gototext.StartsWith("ftp://") = True Then ' Spreekt voor zich..
Dim uritext As New Uri(gototext)
WebBrowser1.Navigate(uritext)
End If
End Sub
Wanneer er op de 'Ga naar'-knop wordt gedrukt wordt er met de functie If gecontroleerd of de inhoud van de veld_adres wel een URL is,
Dan navigeren we de browser naar de ingevoerde tekst.
Private Sub WebBrowser1_CanGoBackChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.CanGoBackChanged
If WebBrowser1.CanGoBack = False Then ' Als je niet terug kan gaan, de knop < disablen
knop_vorige.Enabled = False
Else
knop_vorige.Enabled = True ' Tegenovergestelde
End If
End Sub
Private Sub WebBrowser1_CanGoForwardChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.CanGoForwardChanged
If WebBrowser1.CanGoForward = False Then ' Als je niet verder kan, de knop > disablen
knop_volgende.Enabled = False
Else
knop_volgende.Enabled = True ' Tegenovergestelde
End If
End Sub
Met deze functies controleren we of we met de browser terug of vooruit kunnen, als dat zo is dan wordt de terug/vooruit knop geactiveerd.
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim currenturl As String = WebBrowser1.Url.ToString()
veld_adres.Text = currenturl ' De veld_adres met de URL in updaten bij het laden van de browser.
End Sub
Private Sub WebBrowser1_Navigated(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
Dim currenturl As String = WebBrowser1.Url.ToString()
veld_adres.Text = currenturl ' De veld_adres met de URL in updaten.
End Sub
Met deze functies updaten we de veld_adres met de url in zodra er door de webbrowser wordt genavigeerd.
Private Sub WebBrowser1_DocumentTitleChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.DocumentTitleChanged
Dim title As String = WebBrowser1.DocumentTitle()
Me.Text = "My Webbrowser v1.0 - " & title ' De titel updaten.
End Sub
Private Sub WebBrowser1_StatusTextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.StatusTextChanged
Dim statustext As String = WebBrowser1.StatusText
ToolStripStatusLabel1.Text = statustext ' Statusbar updaten.
End Sub
Met deze functies updaten we de titel en de statusbar.
Druk op de 'play' knop om het eindresultaat te bekijken:
Je programma 'uitgeven'
Zo, wanneer het eindresultaat je een beetje bevalt kan je je programma gaan 'uitgeven', zodat je het niet steeds moet openen via de play-knop ;-)
Dit doe je zo:
Build > Build SimpleWebBrowser
Je vindt je programma dan hier terug:
ProjectsSimpleWebBrowserSimpleWebBrowserinRelease
top
6. Nawoord
Ik hoop dat jullie genoten hebben van mijn (eerste) tutorial, en er vooral iets van geleerd hebben!
Aanvullende commentaar en reacties kunnen worden geplaatst bij reacties.
Wanneer je een slechte score geeft, zeg dan ook waarom.
top
|