//A noter que j'ai déjà poster ça sur argoemu.azok.org, il y a quelques jours, ce tuto est bel et bien de moi.
Alors, dans ce tuto par moi même, je vais vous apprendre à créé un Web Browser, d'abords très simple, puis je conplexifierais. Celui que j'avais fais il y a quelques mois était à peu près à la fin de la partie "Simple", j'avance donc avec vous :)
Lisez les explications, ne leechez pas bêtement! (Vu que je vais peut etre l'utiliser ou faire une release, je met un design qui me plait, ça ne change rien à part le graphique)
Comme le projet est fait en plusieur parties, je vais utiliser des #Region , vous n'etes pas obligé de faire de même.
Le niveau pour comprendre et reproduire ceci est débutant.
I) Un browser basique
1)Définir les besoins:
De quels contrôles avez vous besoin?
2)Commencer le code des fonctions de bases:
je vous laisse réfléchir, utilisez l'IDE de VB pour savoir quoi mettre ;)
Bon, allez, je suis pas sadique (quoi que)
Là, vous devez pouvoir naviguer de manière basique.
3)Quelques fonctions basiques "d'ergonomie"
Ici, on ajoute juste 2/3 trucs tout bêtes pour s'adapter à la page et aux actions de l'utilisateur:
II) Ajout des fonctions plus avancées
1) Et si on ajoutait un systeme de favoris?
Bon, je vous laisse chercher (interdit de regarder sur le net!) j'ai réussis seul après de longues heures (bon, OK, je pianotais plus sur mon iPod :p )
Donc, ça donne
2) Wow, ça avance... Mais pourquoi pas un historique?!
Alors, on pousse encore plus loin *Vers l'infini...Et au de là!"
D'autres fonctions peut etre bientôt!
A noter que les favoris ne s'enregistre pas d'une navigation à l'autre :/
Pensez à customiser vos bouttons et tout :)
Hope this helps
Alors, dans ce tuto par moi même, je vais vous apprendre à créé un Web Browser, d'abords très simple, puis je conplexifierais. Celui que j'avais fais il y a quelques mois était à peu près à la fin de la partie "Simple", j'avance donc avec vous :)
Lisez les explications, ne leechez pas bêtement! (Vu que je vais peut etre l'utiliser ou faire une release, je met un design qui me plait, ça ne change rien à part le graphique)
Comme le projet est fait en plusieur parties, je vais utiliser des #Region , vous n'etes pas obligé de faire de même.
Le niveau pour comprendre et reproduire ceci est débutant.
I) Un browser basique
1)Définir les besoins:
De quels contrôles avez vous besoin?
-Un toolstripboutton pour revenir en arriere: Bback
-un toolstripboutton pour aller après: Bforward
-un toolstripboutton pour lancer l'addresse: Bgo
-un toolstripboutton pour actualiser la page: Brefresh
-un toolstripboutton pour arreter la recherche de la page en cour: Bstop
-Un toolstripboutton pour aller à la page d'accueil : Bhome
-Un webbrowser: Browser1
-un toolstriptextbox :Turl
-Bien sur, mettez un toolstripcontainer, on ne change pas les noms, ça ne sert à rien.
-un toolstripboutton pour aller après: Bforward
-un toolstripboutton pour lancer l'addresse: Bgo
-un toolstripboutton pour actualiser la page: Brefresh
-un toolstripboutton pour arreter la recherche de la page en cour: Bstop
-Un toolstripboutton pour aller à la page d'accueil : Bhome
-Un webbrowser: Browser1
-un toolstriptextbox :Turl
-Bien sur, mettez un toolstripcontainer, on ne change pas les noms, ça ne sert à rien.
2)Commencer le code des fonctions de bases:
je vous laisse réfléchir, utilisez l'IDE de VB pour savoir quoi mettre ;)
Bon, allez, je suis pas sadique (quoi que)
-On commence par mettre l'url du webbrowser sur Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! (via la partie graphique)
-on passe aux chose sérieuses: premier #Region pour y mettre les controles placés précédement! Je l'appelle "Tools"
-on met les commandes pour chaque boutton:
Tout marche sans les Me. , mais c'est une habitude à prendre pour la suite! (J'dis ça, mais je le fais jamais :/ )
je dois avouer que j'ai lu le tuto sur le SDZ (après avoir fait mon browser perso), et contrairement à eux, je ne vois pas l'interet de mettre un menu juste pour fermer. Ca prend de la place inutile. On vera peut etre plus tard pour d'autres fonctions :)
-on passe aux chose sérieuses: premier #Region pour y mettre les controles placés précédement! Je l'appelle "Tools"
-on met les commandes pour chaque boutton:
Code:
Public Class Form1
#Region "Tools"
Private Sub Bback_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bback.Click
Me.Browser1.GoBack()
End Sub
Private Sub Bforward_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bforward.Click
Me.Browser1.GoForward()
End Sub
Private Sub Bgo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bgo.Click
Me.Browser1.Navigate(Turl.Text)
End Sub
Private Sub Bstop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bstop.Click
Me.Browser1.Stop()
End Sub
Private Sub Bhome_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bhome.Click
Me.Browser1.GoHome()
End Sub
Private Sub Brefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Brefresh.Click
Me.Browser1.Refresh()
End Sub
#End Region
End Class
je dois avouer que j'ai lu le tuto sur le SDZ (après avoir fait mon browser perso), et contrairement à eux, je ne vois pas l'interet de mettre un menu juste pour fermer. Ca prend de la place inutile. On vera peut etre plus tard pour d'autres fonctions :)
Là, vous devez pouvoir naviguer de manière basique.
3)Quelques fonctions basiques "d'ergonomie"
Ici, on ajoute juste 2/3 trucs tout bêtes pour s'adapter à la page et aux actions de l'utilisateur:
On va ajouter une autre toolbarre en bas, pour avoir le statut de la page...
On ajoute donc Lstat
on commence par le Form1_Load
Et on enchaine sur la navigation
Wow! Ca commence à ressembler à quelque chose! Mais il me semble que mon browser habituel fait mieux... Oui, mais en quoi? Réponse juste après!
On ajoute donc Lstat
on commence par le Form1_Load
Code:
#Region "ToolChange"
'Pas de possibilité d'avancer/reculer/stoper au démarage
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Bback.Enabled = False
Me.Bforward.Enabled = False
Me.Bstop.Enabled = False
End Sub
Et on enchaine sur la navigation
Code:
Private Sub Browser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles Browser1.DocumentCompleted
'Stop est déactivé (le chargement est fini), on remet Lstat à jour.
Me.Lstat.Text = Browser1.StatusText
Me.Bstop.Enabled = False
'on affiche l'URL
Me.Turl.Text = Me.Browser1.Url.ToString
End Sub
'on lance le chargement de la page
Private Sub Browser1_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles Browser1.Navigating
'Le bouton stop peut etre activé
Me.Bstop.Enabled = True
'les stats sont rechargées
Me.Lstat.Text = Browser1.StatusText
'En premier le Bforward
If Me.Browser1.CanGoForward Then
Me.Bforward.Enabled = True
Else
Me.Bforward.Enabled = False
End If
'Et exactement pareil avec Bback
If Me.Browser1.CanGoBack Then
Me.Bback.Enabled = True
Else
Me.Bback.Enabled = False
End If
End Sub
#End Region
Wow! Ca commence à ressembler à quelque chose! Mais il me semble que mon browser habituel fait mieux... Oui, mais en quoi? Réponse juste après!
II) Ajout des fonctions plus avancées
1) Et si on ajoutait un systeme de favoris?
Bon, je vous laisse chercher (interdit de regarder sur le net!) j'ai réussis seul après de longues heures (bon, OK, je pianotais plus sur mon iPod :p )
Donc, ça donne
On ajoute le toolstripmenu Favoris dans le menu en haut
Et un toolstripbuton : Bfav
Dans #Region "Favoris"
Dans Bfav.click
Et en dessous:
Testez ça :)
Et un toolstripbuton : Bfav
Dans #Region "Favoris"
Dans Bfav.click
Code:
Private Sub Bfav_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bfav.Click
Dim fav As New ToolStripMenuItem
fav.Text = Browser1.DocumentTitle
fav.Tag = Browser1.Url.ToString
AddHandler fav.Click, AddressOf fav_click
FavorisToolStripMenuItem.DropDownItems.Add(fav)
End Sub
Code:
private sub fav_click (ByVal sender As ToolStripMenuItem, ByVal byvale as System.EventArgs)
Browser1.navigate (sender.tag)
End Sub
Testez ça :)
2) Wow, ça avance... Mais pourquoi pas un historique?!
Alors, on pousse encore plus loin *Vers l'infini...Et au de là!"
Commencez par aller dans MyProject dans l'explorateur de solution;
Trouvez l'onglet paramètres
Entrez dans nom: History
Type: System.Collections.Specialized.StringCollection.
Laisser utilisateur
Entre des lettes aux hasard à coté puis valideer ce champs, ensuite supprimez ce que vous avez mis. (le tout en passant par le boutton sur le cote)
Retournez dans Form1.vb:
Retrouvez le sub
Private Sub Browser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles Browser1.DocumentCompleted
on l'avais mis au début dans #Region ToolChange
ajoutez:
Ensuite on ajoute une Form
Dedans on met une listBox et un boutton (en dessous)
On met text du boutton "supprimer" : Bsuppr
Dans Form2.vb, nous allons entrer du code:
C'est pas fini!
on reviens dans form1.vb
Dans notre Private Sub Browser1_DocumentCompleted
on ajoute ensuite le code suivant dans une nouvelle région (c'est plus classe:p )
On test... Et ça marche!
Trouvez l'onglet paramètres
Entrez dans nom: History
Type: System.Collections.Specialized.StringCollection.
Laisser utilisateur
Entre des lettes aux hasard à coté puis valideer ce champs, ensuite supprimez ce que vous avez mis. (le tout en passant par le boutton sur le cote)
Retournez dans Form1.vb:
Retrouvez le sub
Private Sub Browser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles Browser1.DocumentCompleted
on l'avais mis au début dans #Region ToolChange
ajoutez:
Code:
'Pour l'historique
If My.Settings.History.Count > 0 Then
If Not My.Settings.History.Item(My.Settings.History.Count - 1) = Browser1.Url.ToString Then
My.Settings.History.Add(Browser1.Url.ToString)
End If
Else
My.Settings.History.Add(Browser1.Url.ToString)
End If
Ensuite on ajoute une Form
Dedans on met une listBox et un boutton (en dessous)
On met text du boutton "supprimer" : Bsuppr
Dans Form2.vb, nous allons entrer du code:
Code:
Public Class Form2
#Region "Historique"
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Updatelist()
End Sub
Friend Sub Updatelist()
If My.Settings.History.Count > 0 Then
For Each historyitem In My.Settings.History
ListBox1.Items.Add(historyitem)
Next
End If
End Sub
Private Sub Bsuppr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bsuppr.Click
ListBox1.Items.Clear()
End Sub
#End Region
End Class
C'est pas fini!
on reviens dans form1.vb
Dans notre Private Sub Browser1_DocumentCompleted
Code:
Form2.Updatelist()
Code:
#Region "Historique"
Private Sub Bhisto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bhisto.Click
Form2.Show()
End Sub
#End Region
On test... Et ça marche!
D'autres fonctions peut etre bientôt!
A noter que les favoris ne s'enregistre pas d'une navigation à l'autre :/
Pensez à customiser vos bouttons et tout :)
Hope this helps
Last edited: