WEB BROWSER + TABCONTROL - ABRIR NOVAS JANELAS

GTSDIGITAL 08/01/2017 12:07:24
#470463
Amigos, estou usando o WebBrowser para navegação, quando clico em alguma propaganda é aberto em uma nova janela (Internet Explorer) que é o motor do WebBrowser, mas quero que seja aberto uma nova janela dentro do TabControl + WebBrowser dentro do mesmo form, como fazer ?




Imports System.ComponentModel
Imports System.Net

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim newPage As New TabPage()
newPage.Text = [Ô]New Tab[Ô]
TabControl1.TabPages.Add(newPage)

Dim webbrowswer As New WebBrowser()
webbrowswer.Dock = DockStyle.Fill
newPage.Controls.Add(webbrowswer)
TabControl1.SelectedTab = newPage

[ô]OCULTAR ERROS DE SCRIPTS
webbrowswer.ScriptErrorsSuppressed = True
webbrowswer.Navigate([Ô]www.google.com.br[Ô])
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If TabControl1.SelectedTab IsNot Nothing Then
TabControl1.TabPages.Remove(TabControl1.SelectedTab)
End If
End Sub

KERPLUNK 09/01/2017 02:02:56
#470482
Ao invés de adicionar sempre a mesma instância de WebBrowser, adicione uma nova no momento da criação da Tab:

newPage.Controls.Add(New WebBrowser())
GTSDIGITAL 09/01/2017 07:57:23
#470486
Citação:

:
Ao invés de adicionar sempre a mesma instância de WebBrowser, adicione uma nova no momento da criação da Tab:


newPage.Controls.Add(New WebBrowser())


Boa garoto, e como eu detecto quando o usuario der um click em algum link (tipo propaganda de algum site) que geralmente será aberto uma nova janela ? Assim fazer ele abrir neste novo WebBrowser dentro do form ?
KERPLUNK 09/01/2017 22:45:51
#470538
O controle WebBrowser não possui uma indicação de redirecionamento, portanto não é possível fazer o que você quer. Pode ser que alguma gambiarra funcione, mas não será confiável.
GTSDIGITAL 10/01/2017 16:56:31
#470580
Citação:

:
O controle WebBrowser não possui uma indicação de redirecionamento, portanto não é possível fazer o que você quer. Pode ser que alguma gambiarra funcione, mas não será confiável.




KERPLUNK, consegui através do código abaixo, ao clicar em um hyperlink de publicidade será aberto uma nova janela, o codigo abaixo detecta certinho e abre a nova ABA do TabControl, mas como também é criado um novo WebBrowser, como eu passo a URL clicada para esse novo WebBrowser ?

Ele cria um Index de webbrowsers a cada criação em tempo de execução ?



Imports System.ComponentModel
Imports System.Net

Private Sub WebBrowser1_NewWindow(sender As Object, e As CancelEventArgs) Handles WebBrowser1.NewWindow

[ô]CRIAR UMA NOVA ABA
Dim tp As New TabPage
TabControl1.Controls.Add(tp)

[ô]Isso cria um novo webbrowser com o Evento NewWindow e o navega até o link que deseja ser aberto
Dim wb As New WebBrowser
Dim myElement As HtmlElement = WebBrowser1.Document.ActiveElement
Dim target As String = myElement.GetAttribute([Ô]href[Ô])
With wb
.Navigate(target)
.Dock = DockStyle.Fill
End With

AddHandler wb.NewWindow, AddressOf WebBrowser1_NewWindow

tp.Controls.Add(wb)

[ô]This prevents ie from popping up
e.Cancel = True


End Sub

Tópico encerrado , respostas não são mais permitidas