cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 29 juil. 2007 à 11:10
tu passe par la collection d'items du toolstrip. Exemple pour un bouton :
Dim titi As New ToolStripButton
titi.Text = "calimero"
tstrip.Items.Add(titi)
Ensuite il faut abonner l'évènement désiré de ton bouton à une procédure de ton code capable de traiter cet évènement :
AddHandler titi.Click, AddressOf titi_Click
avec la procédure :
Private Sub titi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
.............
End Sub
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 29 juil. 2007 à 12:09
Effectivement en sortant de la fonction tu perds la réféence sur les controles créés.
Il faut donc qu'en tu en as à nouveau besoin, récupérer une référence sur ces controles.
Ici, tu en a besoin dans la procédure titi_click. en faisant un peu de bricolage, on peut retrouver cette référence.
Dans titi, tu as sender qui représente le bouton qui a été cliké. Ce bouton est contenu dans un ToolStrip, lui même contenu dans une TabPage. Donc en remontant la parenté du bouton, on peut retourver la TabPage (avec les subtilités des différents controles).
Le WebBrowser étant posé sur cettemême TabPage, il fait partie de sa collection de controles. 9a donne un code comme ceci :
Private Sub titi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim tmpnavig As WebBrowser
Dim tbpage As TabPage = CType(sender, ToolStripButton).GetCurrentParent.Parent
tmpnavig = tbpage.Controls("webnavig")
tmpnavig.GoBack()
End Sub
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 29 juil. 2007 à 13:16
Effectivement ton code n'est pas bon.
sender représente toujours le controle qui déclenche l'évènement, ici c'est le webbrowser et non plus le bouton du tollstrip.
Sur le même principe que tout à l'heure il te faut remonter la parenté, mais ici que d'un niveau puisque le controle recherché (la tabpage) est directement le parent du controle de départ (sender, donc le webbrowser).
Ca donne ceci :
Private Sub Navig_cmpl(ByVal sender As Object, ByVal e As System.EventArgs)
Dim tmpnavig As WebBrowser = CType(sender, WebBrowser)
Dim tbpage As TabPage = tmpnavig.Parent
tbpage.Text = tmpnavig.DocumentTitle
matrux
Messages postés35Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention31 juillet 2007 29 juil. 2007 à 11:42
Me revoila j'ai un probléme.
J'ai un webbrowser qui se nomme navig.
j'ai donc ceci
Public Sub OngletNouveauToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OngletNouveauToolStripMenuItem.Click
[...]
Dim Navig As New WebBrowser()
Navig.Name = "webnavig"
Navig.Dock = DockStyle.Fill
Navig.Parent = TabControl1.TabPages(ongletcounter - 1)
[...]
end sub
et ensuite j'ai ceci
Private Sub titi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
navig.goback
End Sub
Le probléme est qu'il ne trouve pas navig.
Et je ne peux pas declarer Navig en dehors de OngletNouveauToolStripMenuItem_Click sinon je n'ai qu'un seul webbrowser qui va sur le nouvel onglet en supprimant l'ancien webbrowser.
matrux
Messages postés35Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention31 juillet 2007 29 juil. 2007 à 12:57
J'ai encore un probléme (j'espere que c'est le dernier je dois etre soulant a la fin....)
Voila je voudrais changer le nom de l'onglet sur lequelle le webrowser et activer j'ai donc ceci
Public Sub OngletNouveauToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OngletNouveauToolStripMenuItem.Click
Private Sub Navig_cmpl(ByVal sender As Object, ByVal e As System.EventArgs)
Dim tmpnavig As WebBrowser
Dim tbpage As TextBox = CType(sender, ToolStripButton).GetCurrentParent.Parent
tmpnavig = tbpage.Controls("webnavig")
tbpage.Text = tmpnavig.DocumentTitle
End Sub
matrux
Messages postés35Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention31 juillet 2007 29 juil. 2007 à 13:01
Euhh excuse moi j'ai fais une erreur :
Private Sub Navig_cmpl(ByVal sender As Object, ByVal e As System.EventArgs)
Dim tmpnavig As WebBrowser
Dim tbpage As tabpage = CType(sender, ToolStripButton).GetCurrentParent.Parent
tmpnavig = tbpage.Controls("webnavig")
tbpage.Text = tmpnavig.DocumentTitle
End Sub
matrux
Messages postés35Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention31 juillet 2007 29 juil. 2007 à 14:39
Je n'arrive pas a ajouter de Toolstriptextbox a mon toolstrip. voici ce que j'ai comme code :
Dim AdressBar As New ToolStripTextBox
AdressBar.Text = ""
AddHandler AdressBar.KeyPress, AddressOf AdressBar_KeyPress
J'aimerai aussis savoir si ce code la va marcher pour ma textbox :
Public Sub AdressBar_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim tmpnavig As WebBrowser
Dim AdressBar As ToolStripTextBox
Dim tbpage As TabPage = CType(sender, ToolStripButton).GetCurrentParent.Parent
Dim tbpages
tmpnavig = tbpage.Controls("webnavig")
tbpages = tmpnavig.Parent
AdressBar = tbpages.Controls("AdressBar")
If e.KeyChar = ControlChars.Cr Then
tmpnavig.Navigate(AdressBar.Text)
End If
End Sub
matrux
Messages postés35Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention31 juillet 2007 29 juil. 2007 à 15:00
J'ai reussi a afficher la textbox mais j'ai un autre probléme :
J'aimerai que quand j'appui sui entrer ceci charge l'adresse web tapé dans la textbox mais ceci ne marche pas :
Voici le code que j'utilise :
Public Sub AdressBar_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim tmpnavig As WebBrowser
Dim AdressBar As ToolStripTextBox
Dim tbpage As TabPage = CType(sender, ToolStripButton).GetCurrentParent.Parent
Dim tbpages
tmpnavig = tbpage.Controls("webnavig")
tbpages = tmpnavig.Parent
AdressBar = tbpages.Controls("AdressBar")
If e.KeyChar = ControlChars.Cr Then
tmpnavig.Navigate(AdressBar.Text)
End If
End Sub
matrux
Messages postés35Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention31 juillet 2007 29 juil. 2007 à 15:36
Merci,
J4ai trouver comment faire :
J'ai utiliser ce code la :
Public Sub AdressBar_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim tmpnavig As WebBrowser
Dim AdressBar As ToolStripTextBox
Dim tbpage As TabPage = CType(sender, ToolStripTextBox).GetCurrentParent.Parent
Dim tbpages As ToolStrip = CType(sender, ToolStripTextBox).GetCurrentParent
tmpnavig = tbpage.Controls("webnavig")
AdressBar = tbpages.Items.Item("adressbar")
If e.KeyChar = ControlChars.Cr Then
tmpnavig.Navigate(AdressBar.Text)
End If
End Sub
Par contre j'ai un autre probléme :
Dim AdressBar As New ToolStripTextBox
AdressBar.Name = "AdressBar"
AdressBar.Text = ""
AdressBar.Width = "600"
AddHandler AdressBar.KeyPress, AddressOf AdressBar_KeyPress
tstrip.Items.Add(AdressBar)
Ma toolstriptextbox ne veut pas s'afficher avec un taille de 600.
matrux
Messages postés35Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention31 juillet 2007 29 juil. 2007 à 16:26
Oui mais si je retire dock top elle ne sera plus en haut, et justement je voudrais la garder en haut
As-tu une idée qui pourrais m'aide rpour ce petit probléme ?
Et aussis au passage pendant que j'y pense, comment tu fais pour supprimer l'onglet actif d'un tabcontrol ?