Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

BusT

URL na ComboBox

Recommended Posts

BusT

Olá estou a fazer um simples browser no Visual Basic 2008

As coisas principais já estão feitas...

Eu ponho um URL na combobox e consigo ver esse URL, o que está falhando é que o URL da ComboBox não muda, por exemplo ponho na combobox isto: www.google.pt, consigo aceder ao website mas dps por exemplo no google carrego imagens e o URL continua o mesmo ou seja : www.google.pt

Como posso mudar isso?

Cumps.

Share this post


Link to post
Share on other sites
vasco16

Ao fazer esse tutorial fico com 50 erros

Ou é erro meu ou é erro do tutorial

Esses 50 erros podem ser só de nao teres um import..

Share this post


Link to post
Share on other sites
rjsma

o tutorial funciona perfeitamente

fizeste o tutorial no mesmo projecto que tinhas?

se a resposta for sim faz em um novo projecto e depois tentas implementar comandos mais evoluidos

se nao conseguires depois deixo aqui um exemplo para compreenderes melhor

cumps

:)

Share this post


Link to post
Share on other sites
ribeiro55

50 erros para um problema que se resolve com uma linha :)

O Webbrowser tem um evento chamado DocumentCompleted que é disparado sempre que a página acaba de ser carregada.

Só precisas de apanhar o url para onde queres, no momento em que o evento é disparado, por exemplo:

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        Combobox1.Text = e.Url.ToString
    End Sub


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
paulo silva

Por curiosidade Vi o video e elaborei o projecto, mas ao adicionar um novo tab e ao o seleccionar dá-me o seguinte erro.

Untitled-1.jpg

Alguém sabe o porque?

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites
ribeiro55

Se o índice 0 (zero) está fora do alcance, significa (à partida) que a contagem de controlos da selectedtab é zero.

A julgar por a conversão que estás a tentar fazer, não te esqueceste de meter um controlo webbrowser na tab?


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
Johnny Mercy

Olha é melhor fazeres assim:

Private Sub WebBrowser1_DocumentTitleChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.DocumentTitleChanged
   Combobox1.Text = e.Url.ToString
End Sub

Assim ele muda logo o url quando muda o titulo da página, é mais rápido do que o DocumentCompleted pois tinhas que esperar que a página carrega-se por completo.

:)

Sobre esse erro eu penso que o browser ainda não está carregado e como não existe ele dá erro. A melhor coisinha a fazeres é criares uma classe para o browser pois assim não precisas nada disso no timer (não é obrigatório criares uma classe mas fica muito mais organizado).  :)

Podes por isso dentro de um try em ultimo caso.

Seja como for, se quiseres ver mais coisas para o teu browser sempre podes verificar este simples browser tutorial que eu fiz:

http://vb-extreme-project.blogspot.com/2010/01/web-browser-simples-navegador.html

Share this post


Link to post
Share on other sites
paulo silva

Esse erro deveu-se a falta de atenção! mas já esta resolvido, nem a copiar se acerta-mos. erro ao copiar.

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites
paulo silva

Boas tenho uma dúvida. não sei se é a mesma que o BusT.

Mas quando tenho varios tabs abertos ao navegar por eles o url na nao muda fica o ultimo do tab aberto.

Como fazer para corrigir isso?

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites
paulo silva

ponho que codigo?

o

ComboBox1.Text = e.Url.ToString

não funciona. e não sei onde é guardado esse valor (string) para p poder voltar a chamar.

pode ser a coisa mais básica do mundo, mas infelizmente não estou a conseguir

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites
Johnny Mercy

Claro que não funciona assim..

Eu não sei como fizeste ao criar uma nova aba mas penso que seja assim, tenta:

Dim WB As (nome do controlo web browser que estás a usar) = (nome da tab control).SelectedTab.Tag
ComboBox1.Text =wb.document.url.tostring

Se não funcionar põe aí o código que fazes quando adicionas uma nova aba.  ;)

Share this post


Link to post
Share on other sites
paulo silva

Private Sub Done(ByVal sender As Object, ByVal e As Windows.Forms.WebBrowserDocumentCompletedEventArgs)
        TabControl1.SelectedTab.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).DocumentTitle
        ComboBox1.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Url.ToString
        'ComboBox1.Text = e.Url.ToString
    End Sub

Private Sub AdiccionarTabToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AdiccionarTabToolStripMenuItem1.Click
        Dim browser As New WebBrowser
        TabControl1.TabPages.Add("New page")
        TabControl1.SelectTab(int)
        browser.Name = "Web browser"
        browser.Dock = DockStyle.Fill
        TabControl1.SelectedTab.Controls.Add(browser)
        AddHandler browser.ProgressChanged, AddressOf Loading
        AddHandler browser.DocumentCompleted, AddressOf Done

        int = int + 1

        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).GoHome()
    End Sub

Tentei como disses-te mas continua sem funcionar

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites
Johnny Mercy

Pronto, deixa estar o código que te disse a cima mas altera o teu add tab por esse:

Private Sub AdiccionarTabToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AdiccionarTabToolStripMenuItem1.Click
       Dim newBrowser As New CustomBrowser
        Dim newTab As New TabPage
        newBrowser.Tag = newTab
        newTab.Tag = newBrowser
        TabControl.TabPages.Add(newTab)
        newTab.Controls.Add(newBrowser)
        newBrowser.Dock = DockStyle.Fill

        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).GoHome()

        TabControl.SelectTab(newTab)
    End Sub

Já deve funcionar  ;)

Share this post


Link to post
Share on other sites
paulo silva

   Private Sub TabControl1_TabIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.TabIndexChanged
        ' ComboBox1.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Url.ToString
        If TabControl1.TabIndex = 0 Then
        Else
            Dim WB As WebBrowser = TabControl1.SelectedTab.Tag
            ComboBox1.Text = WB.Document.Url.ToString

        End If
    End Sub

Private Sub Done(ByVal sender As Object, ByVal e As Windows.Forms.WebBrowserDocumentCompletedEventArgs)
        TabControl1.SelectedTab.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).DocumentTitle
        ComboBox1.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Url.ToString
        'ComboBox1.Text = e.Url.ToString
    End Sub

Private Sub AdiccionarTabToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AdiccionarTabToolStripMenuItem1.Click
        Dim browser As New WebBrowser
        TabControl1.TabPages.Add("New page")
        TabControl1.SelectTab(int)
        browser.Name = "Web browser"
        browser.Dock = DockStyle.Fill
        TabControl1.SelectedTab.Controls.Add(browser)
        AddHandler browser.ProgressChanged, AddressOf Loading
        AddHandler browser.DocumentCompleted, AddressOf Done

        int = int + 1

        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).GoHome()
    End Sub

Este é o código que uso para o browser.

Já tentei com o código que deste e nada :S

Experimenta esse código

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites
Johnny Mercy

Olha, usa na mesma o que te disse mas não ponhas o código que te dei para o changetab dentro do if, põe fora.

Share this post


Link to post
Share on other sites
rjsma

Por curiosidade Vi o video e elaborei o projecto, mas ao adicionar um novo tab e ao o seleccionar dá-me o seguinte erro.

Untitled-1.jpg

Alguém sabe o porque?

Cumprimentos Paulo Silva

fui mexer no meu webbrowser que tinha feito a uns tempos e reparei que tambem tinha o mesmo erro do nosso colega Paulo Silva, da-me esse erro quando carrego no botao para fechar a tab. Algum membro sabe porque isto acontece ou até mesmo o proprio paulo silva podia explicar como resolveu.

Abraço

Share this post


Link to post
Share on other sites
paulo silva

Eu retirei esse if e ficou só mesmo o conteúdo.

Se o problema persistir diz.

Agora ele adicciona e remove tudo bem, mas ao mudar de tab o URL não muda consoante a pagina que está.

Dai o meu problema.

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites
rjsma

eu tirei o if e o problema ainda continua a existir

no evento do timer tenho

ToolStripStatusLabel1.Text = CType(webbrowser1.SelectedTab.Controls.Item(0), WebBrowser).StatusText

no inicio o navegador funcionava completamente  mas depois fui adicionando funcionalidades e quando dei por mim ja nao funcionava este botao

abraço

;)

Share this post


Link to post
Share on other sites
rjsma

desculpem em estar a insistir com esta duvida mas ninguem pode dar me um empurrao?

abraço

:D

Share this post


Link to post
Share on other sites
paulo silva

Vendo bem eu no inicio tambem deu-me esse erro porque tinha-me enganado a copiar codigo, pus igual o codigo do form_load e do adicionar tab mas era diferente tinha para lá o incrementador . vê se copias-te bem?

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites
rjsma

tive agora a comparar os codigos do video e com o minha aplicação e parece estar tudo igual, incrementador é igual no form_load e no adicionar tab.Continua a dizer que o 0 esta fora do intervalo.já nao estou a ver nada disto  :P

abraço

Share this post


Link to post
Share on other sites
paulo silva

Repara bem... Garanto-te que não é igual. Se não descobrires a diferença diz que posto aqui.

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.